2012-03-21 17 views
0

Rob Allen's tutorialによると:Zend Frameworkにレイアウト

$response = $this->getResponse(); 
$response->insert('header', $this->view->render('header.phtml')); 
$response->insert('sidebar', $this->view->render('sidebar.phtml')); 
$response->insert('footer', $this->view->render('footer.phtml')); 

IndexControllerのは、init()関数に、ヘッダー、フッター、すべてのためにサイドバーを生成するために:私は置くべき私のZendのアプリケーションにレイアウトを使用するにはアクション。 すべてのビューに同じレイアウトを使用したいと思いますが、この部分をすべてのコントローラに入れる必要がありますか? (私はZF 1.11を使用しています)

ありがとうございました。

答えて

1

を使用する必要があります

Zend_Layout::startMvc(); 

とあなたが

012あなたのレイアウトを維持するどこにも指定できます。あなたのブートストラップで次の操作を行って、Zendのレイアウトを初期化します

すべてのコントローラーで同じビューをレンダリングするよりもはるかに効率的です。

1

あなたが参照しているブログ投稿は、ほぼ5歳と決してZF 1.11の現在の状態を表し、あなたはあなたができるofficial Zend_Layout documentationまたはRobs ZF1 tutorial

+0

リンクをありがとう、新しいバージョンのチュートリアルはありませんでした。 – Believer

0

これまでの説明はさらに簡単です。 application.iniこの行を追加する

このパスのデフォルトレイアウトはlayout.phtmlとなります。

あなたは、デフォルトのレイアウトはmaster.phtmlだろう。この場合、あなたのapplication.ini

resources.layout.layoutPath = APPLICATION_PATH "/layouts" 
resources.layout.layout = master 

に2行が必要な場合がありますパスまたはデフォルトのレイアウトを変更したい場合。代替的に、デフォルトのレイアウトから変更する

を追加するだけである。

public function preDispatch() { 

     $this->_helper->layout->setLayout('admin'); 
    } 

新しいレイアウトを必要とするコントローラへの代替レイアウトのみ一定に印加されるように、ロジックを追加することができます行動。

関連する問題