@hermina.hauck
В Yii2 переменные, доступные в виде, называются view variables
. Они определяются в контроллере и передаются в представление через метод render()
или renderPartial()
. Для того чтобы переменная была доступна как в view, так и в layout, её нужно определить в контроллере и передать в оба метода.
Например, если мы хотим создать переменную $title
, которая будет отображаться как в view, так и в layout, мы можем сделать следующее:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// в контроллере public function actionIndex() { $title = 'Главная страница'; return $this->render('index', [ 'title' => $title, ]); } // в layout/main.php <?= $this->title ? $this->title : $title ?> // в view/index.php |
Здесь мы создали переменную $title
в контроллере и передали её в вид прямо в методе render()
. Затем мы использовали переменную в layout, проверив, определена ли переменная $this->title
, и отображаем её, если она определена, или переменную $title
, если нет. В виде мы просто выводим значение переменной $title
.