1

マスター レイアウトからビューに変数を渡そうとしていますが、うまくいきません。

レイアウト.phtml

$this->hadMessages = true;

myview.phtml

var_dump($this->hadMessages);

var_dump常に で返されNULLます。私が読んだことから、レイアウトもビューなので、同じコンテキストにあるはずですよね?

Zend Framework 1.11 を使用しています。

4

2 に答える 2

3

レイアウトはビューの後にレンダリングされるため、これは機能しません。何をしようとしているのかによっては、コントローラー プラグインの助けを借りて目的の効果を達成できる場合があります。

于 2013-05-09T00:11:04.423 に答える
0

MVC パターンによれば、このようなタスクは必要ないため、レイアウトからビューに変数を渡す方法はありません。レイアウトにメッセージが含まれているかどうかは、レイアウト自体ではなく、コントローラーまたはブートストラップ レベルで決定する必要があります。これは、コントローラーで必要なすべての割り当てを$this->view->layout_messages_shown = true行い、レイアウトとビューの両方でこの変数値を取得する必要があることを意味しますecho ( $this->layout_messages_shown ? "messages shown" : "messages hidden" )

于 2013-05-09T10:20:56.777 に答える