ZF2 layout variable

Кто-нибудь уже пилил ZF2? Стоит задача внутри контроллера передать переменную в layout. Как это сделать?

Нужно для передачи заголовка страницы (h1, а title), который располагается не во view, а именно в общем шаблоне.

Переменные, переданные во view из контроллера, layout не видит.
  • Вопрос задан
  • 4993 просмотра
Решения вопроса 1
Aliance
@Aliance Автор вопроса
Как мне ответили вот здесь, нужно работать через события Application\View\Listener:

*Controller.php
$e = $this->getEvent();
$e->setParam('footer', 'test');


layout.phtml
<?php print $this->raw('footer'); ?>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
@SeriousDron
Не качал, глянул через просмотр репозитория. Вроде хелпер layout остался, так что как и в первом $this->view->layout()->переменная = значение;
Ответ написан
@antonim
ну и ответы...
вот так надо:
в контроллере $this->layout()->setVariable('exampleH1', 'мама мыла раму');

в layout <?=$exampleH1?>
Ответ написан
Комментировать
taliban
@taliban
php программист
В любом случае лайаут тоже через вью рендерится, по другому никак, советую углубитсья в код, а конкретней во взаимосвязь контроллера и лайаута, это полезно делать =)
Ответ написан
Комментировать
@sergeyvolobuev
где нибудь в MVC:
Zend\Layout\Layout::getMvcInstance()->varName = "Title"
В layout:
echo $this->varName;
Ответ написан
В первом была такая свалочка как Zend_Registry, могу предположить что тут есть Zend\Registry. Таким образом:
Zend\Registry::set('key', 'value');

<?php echo Zend\Registry::get('key') ?>
Ответ написан
Ваш ответ на вопрос

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

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