2017-11-27 1 views
0

Zend expressive - LayoutZendの表情豊かなレイアウト変数

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

、私はそれをしようとするにはどうすればよいのアクション からレイアウトする変数を渡したいですか?私layout/default.phtml

<?php 
if (isset($this->toast)){ 
echo $this->toast;  
} 
?> 

</body> 
</html> 
+0

これを試しても効果がありませんでしたか? –

+0

はい、動作しません。私はこのスクリプトをgit hubに入れたいですか? –

+0

こんにちは、私は別のテストを行い、この仕事がレイアウトにではなくテンプレートに実行可能なものを渡すのを見て、HomeAction.phpの変数をlayout/default.phpに渡したいと思いますか? –

答えて

0

$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)); 

あなたは "addDefaultParam" 方法を試してみましたか?署名は;

public function addDefaultParam($templateName, $param, $value) 

、あなたが$templateNameとしてstar (*)を設定することができます(TemplateRendererInterface :: TEMPLATE_ALLを参照)ので、私は、レイアウトがそれを読むことができると思います。

documentationについて読むことができます。その働きがあれば教えてください。

+0

しかし、これは私の質問になります。見てください。 –

+0

そうです。すみません。私はちょうど表現のためのzend-viewレンダラーをチェックしました。 on line 325 "prepareLayout"メソッドはレイアウトを準備し、変数を使用しません。 "addDefaultParam"メソッドはレイアウトに影響しません。基本的に2つの選択肢があります。 youtレンダラーを拡張し、レイアウトに変数を送る(編集をチェックする)、2番目にビューヘルパーを作成する。私はあなたがそれについて多くの例を見つけることができると確信しています。 –

+0

レンダラを拡張しても構いません。 "prepareLayout"はプライベートメソッドなので、少なくともzend-view-rendererです。私はあなたがビューヘルパーを作成する必要がありますと思います。 –

関連する問題