В Yii мы можем вложить Контент в декоратора. Общее использование декораторов - layout. При рендеринге вида с помощью метода рендеринга контроллера Yii автоматически украшает его основным макетом. Давайте создадим простой декоратор, который будет правильно форматировать цитаты.
Создайте новое приложение с помощью composer, как описано в официальном руководстве по http:https://www.yiiframework.com/doc-2.0/guide-start-installation.html. по русски http:https://yiiframework.domain-na.me/doc/guide/2.0/ru/start-installation
1 Во-первых, мы создадим файл декоратора, @app/views/decorators/quote.РНР:
<div class="quote">
<h2>“<?= $content?>”, <?= $author?></h2>
</div>
2 Теперь замените содержимое @app/views/site/index.php со следующим кодом:
<?php
use yii\widgets\ContentDecorator;
/* @var */
?>
<?php ContentDecorator::begin([
'viewFile' => '@app/views/decorators/quote.php',
'view' => $this,
'params' => ['author' => 'S. Freud']
]);?>
Time spent with cats is never wasted.
<?php ContentDecorator::end();?>
3 Теперь ваша Домашняя страница должна выглядеть следующим образом:
Декораторы довольно просты. Все между contentDecorator::begin() и contentDecorator::end() оказывается в переменной $content и передается в шаблон "декоратор". Затем шаблон декоратора визуализируется и вставляется в то место, где был вызван ContentDecorator::end. Мы можем передать дополнительные переменные в шаблон декоратора, используя второй параметр ContentDecorator::begin (), такой как тот, который мы сделали для автора. Обратите внимание, что мы использовали @app/views/decorators/quote.php как путь представления.
- < http:https://www.yiiframework.com/doc-2.0/yii-widgets-contentdecorator.html> URL предоставит больше информации о декораторах:
- Рецепт Использование контекста контроллера в представлении