Представьте, что определенная часть 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 нужно проверять его существование, иначе вызов не существующего блока выдаст ошибку.
Спасибо! То что нужно! А то документации по второму Yii еще так мало.
Спасибо. Полезно.
Спасибо
Спасибо!