Вот пару способов:
- оформить как виджет
- объявить переменную в контроллере и выводите ее в представьении
// В контроллере
public $topicday = "defaultvalue";;
public function actionTest() {
$this->topicday = "somevalue";
// ...
}
// Вывод в представлении (layout)
<?= $this->topicday ?>
PS
Если необходимо использовать второй способ, то вам нужно в вью сделать так:
<?php $this->renderPartial('_topicday', array('topicday' => $this->topicday)); ?>
Только учтите, что этому свойству нужно задавать какое-то значения по умолчанию или делать проверку в самом _topicday и если оно NULL, то ничего не выводить ибо ваш layout могут использовать другие контроллеры и в них значение свойства public
$topicday
может быть не определенно.
А вообще, то этот случай полностью подходит под категорию - виджет, там нет ничего сложно в их реализации, а после того, как вы его сделаете - вы поймете на сколько это красивое решение и как оно удобно. Гайд можно посмотреть тут
www.bsourcecode.com/yiiframework2/how-to-create-cu...
В коде он будет выводится примерно так:
<?= TopicDay::widget() ?>
И главное - вся логика, представления и его контрол - будут в одном месте и никак не будут от чего-то зависеть.