Php zend表达式布局变量
基于这个问题,我想从一个动作向布局传递一个变量 我该怎么做呢Php zend表达式布局变量,php,layout,zend-framework,mezzio,Php,Layout,Zend Framework,Mezzio,基于这个问题,我想从一个动作向布局传递一个变量 我该怎么做呢 $toast = [ 'level'=>'info', 'msg' =>'rafael', 'url' => null ]; $this->template->addDefaultParam(Template\TemplateRendererInterface::TEMPLATE_ALL,'toast',$this->toastrMessenger->show($
$toast = [
'level'=>'info',
'msg' =>'rafael',
'url' => null
];
$this->template->addDefaultParam(Template\TemplateRendererInterface::TEMPLATE_ALL,'toast',$this->toastrMessenger->show($toast));
return new HtmlResponse($this->template->render('contentpages::contact',$data));
在我的layout/default.phtml
<?php
if ( isset($this->toast) ){
echo $this->toast;
}
?>
</body>
</html>
您是否尝试了“addDefaultParam”方法?符号是
public function addDefaultParam($templateName, $param, $value)
您可以将star(*)
设置为$templateName
(请参阅TemplateRenderInterface::TEMPLATE\u ALL),这样我想layout就可以读取它了
你可以在网上看到。让我知道它是否起作用。您是否尝试过这个但没有起作用?是的,不起作用。你想让我把这个脚本放到git hub上吗?嗨,我做了另一个测试,看到这项工作是为了传递一个可行的to模板,而不是layout,我想把一个变量从HomeAction.php传递到layout/default.php,这可能吗?你不能。您可以将变量从布局和从动作视图传递到局部视图。对于zf3,我们在分派事件之前编写一个侦听器,这样我们就可以从MvcEvent获得布局并传递Warable,但我确信我们不能在zfe上这样做,但这是我的问题。看,是的。对不起,我傻了。我刚刚检查了zend view渲染器的表现力。在第325行,“prepareLayout”方法准备布局,并且不使用任何变量。所以“addDefaultParam”方法不会影响布局。基本上在这一点上你有两个选择。扩展yout渲染器并将变量发送到布局(选中编辑),然后创建视图辅助对象。我相信你可以找到很多关于它的例子。更不用说扩展渲染器了。至少zend视图渲染,因为“prepareLayout”是私有方法。我想你应该创建一个视图帮助器。你也可以查看:@mtymek的评论。谢谢!我会调查的。