Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php zend表达式布局变量_Php_Layout_Zend Framework_Mezzio - Fatal编程技术网

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的评论。谢谢!我会调查的。