zend 富有表现力的布局变量

zend expressive layout variable

Zend expressive - Layout

https://github.com/zendframework/zend-expressive-twigrenderer/issues/24

基于这个问题,我想从一个Action中传递一个变量给layout 我怎样才能做到这一点?

$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(参见 TemplateRendererInterface::TEMPLATE_ALL)所以我认为布局可以读取它。

您可以在 documentation 上阅读它。让我知道它是否有效。