2

したがって、コントローラーにコードを記述してビューに影響を与えることができるため、layout.phtml はどのコードから読み取られるのでしょうか。(module.phpを想定していますが、フィードバックが欲しいです)

編集:明確にするために...私のコントローラーでは、何かに等しい変数を取得し、ビューでそれにアクセスできます。レイアウト内で同様のアクションを見つけたいと思います。

ありがとう

4

1 に答える 1

10

この単一の投稿でさまざまな質問をします。それらのいくつかに対処しようとします。

レイアウトはどのように機能しますか?

Zend Framework 2 には、「ビュー モデル」という概念があります。ビュー モデルは、いくつかの変数と割り当てられたテンプレートを持つオブジェクトです。このテンプレートは、指定された変数でレンダリングされます。

さらに、ビュー モデルをネストできます。したがって、1 つのビュー モデル (「レイアウト」) には、コントローラーから作成された子があります。子はレンダリングされ、変数として親ビュー モデルに格納されます。この変数の名前は「capture to」と呼ばれます。

コントローラーがあり、ビューモデルが作成されます。このビュー モデルは、レイアウトである新しいモデルに子ビュー モデルとして挿入されます。この子には の「キャプチャ先」が設定されていcontentます。したがって、レイアウトでは、子ビュー モデルの結果が$content変数に挿入されます。

コントローラーのレイアウト変数にどのようにアクセスしますか?

レイアウト ビュー モデルに直接アクセスできるlayoutコントローラー プラグインがあります。したがって、そこに変数を直接設定できます。

public function indexAction()
{
    $this->layout()->setVariable('foo', 'bar');
}

次に、レイアウトに$fooエコーbarします。

ビュー スクリプトでレイアウト変数にアクセスするにはどうすればよいですか?

レイアウト ビュー モデルに直接アクセスできるlayoutビュー ヘルパーもあります。したがって、そこにも変数を設定できます。

<?php $this->layout()->foo = 'bar';?>

次に、レイアウトに$fooエコーbarします。

于 2013-04-20T11:50:23.957 に答える