web-dev-qa-db-ja.com

Zend Frameworkでレイアウトファイルを切り替える方法

私はそれが単純なワンライナーだと確信していますが、私はそれを見つけることができないようです。

特定のアクションに異なるレイアウトファイルを使用するにはどうすればよいですか?

更新:これは私のために働いた、ありがとう!

// Within controller
$this->_helper->_layout->setLayout('other-layout') //other-layout.phtml

//Within view script
<?php $this->layout()->setLayout('other-layout'); ?>
60
Andrew

コントローラー内部から:

$this->_helper->layout->setLayout('/path/to/your/layout_script');

(経由で これらのドキュメント

編集:パスはレイアウトディレクトリが何であれ相対であることを言及する必要があります(デフォルトでは、application/layouts/scripts/

62
Josh Lindsey

このように使用することもできます

// Within controller
Zend_Layout::getMvcInstance()->setLayout('layout_name');

//Within view script

<?php $this->layout()->setLayout('layout_name'); ?>

レイアウトは/ layouts/scripts /フォルダーにある必要があります。そうでない場合は、パスも指定する必要があります。 .phtmlを書く必要はなく、レイアウトの名前だけ

13
Md Moin Uddin