Блоки контента в Yii2

17 сентября, 2014
Метки: ,

Представьте, что определенная часть layouts должна меняться в зависимости от контента представления. Для передачи таких кусков в Yii1 был механизм «клипов» (clips).

<?php echo $this->clips['userinfo']; ?>

Дальше в представлениях (view) можно писать любой код отображения для клипа:

$this->beginClip('userinfo'); 
//любой код, который будет выведен в место echo $this->clips['userinfo'] в layouts
$this->endClip(); 

В Yii2 подобный функционал теперь доступен через блоки контента (blocks). Клипы более не доступны. Блоки контента в Yii2 создаются по тому же принципу:

$this->beginBlock('userinfo'); 
// любой код, который будет выведен при вызове блока 
$this->endBlock(); 

Содержимое блока можно объявить как в представлении так и на уровне layouts.

if (isset($this->blocks['userinfo'])){ 
    echo $this->blocks['userinfo'];  } 

Следует учитывать, что при вызове клипа, если код клипа в представлении вообще не объявлен, ошибки не будет. А перед вызовом блока контента в Yii2 нужно проверять его существование, иначе вызов не существующего блока выдаст ошибку.


Метки: ,

Оставить комментарий

4 комментария »

    Алексей

    Спасибо! То что нужно! А то документации по второму Yii еще так мало.


    Xusnitdin

    Спасибо. Полезно.


    SSDD

    Спасибо


    Sergii

    Спасибо!


Оставить комментарий:









Копирование материалов разрешено при наличии активной ссылки на источник