Как создать переменную в yii2, работающую и в view и в layout?

Пользователь

от hermina.hauck , в категории: PHP , год назад

Как создать переменную в yii2, работающую и в view и в layout?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от kaleigh , год назад

@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.