Задать вопрос
@Anchor00

Yii2: Можно ли сделать так чтобы передаваемые в View параметры были доступны в layout-e?

Из Контроллера во Вьюху параметры передаются так:
return $this->render('index', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
            'header' => 'lalala',
        ]);


После чего они становятся доступны, в качестве соответствующих переменных, во Вьюхе. Но НЕ доступны в Layout-е. Собственно вопрос. Можно ли сделать так, чтобы данные переменные (вопрос именно про них, т.е. "за одним" чтобы они были доступны И в Лэйауте. Про то что из контроллера в лэйоут нужно передавать данные через параметры вьюху, я знаю) были доступны в Layout-е?
  • Вопрос задан
  • 3516 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
tigroid3
@tigroid3
PHP, YII2, SQL, Postgres, Docker, SPHINX, GIT
просто выноси подобное содержимое layout'a в виджет) и не нужно будет сложных манипуляций проделывать
Ответ написан
Комментировать
bitver
@bitver
Это делается через параметры View, хотя можно заморочиться и рендерить без layout, а во view написать сам layout и метод рендера $view, тогда при этом дополнительно передавать параметр, например, 'view' => 'index'. Но придется структуру папок видимо углубить.
Ответ написан
Комментировать
@maks280795
Поискал за вас в google, вроде то что нужно: stackoverflow.com/questions/28038912/how-to-pass-p...
Ответ написан
В родительском контроллере (в контроллере, который наследует текущий контроллер):

public $params;

В экшене, который рендерит вьюху:
$this->params=123;

И теперь в основном шаблоне (layout) выводите так:
echo $this->params;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы