1

アプリケーションに 2 つのレイアウトがある場合、コントローラまたはアクションのデフォルト レイアウトを他のレイアウトに変更するにはどうすればよいですか?

4

3 に答える 3

7

ロバートベーシックの答えは正しいです。コントローラー アクション内で次の操作を実行することもできます。

$this->_helper->layout->setLayout('otherlayout');
于 2010-02-03T22:34:23.403 に答える
2

どうぞ:

$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('otherlayout');

2 番目のレイアウトの名前はどこotherlayoutにありますか (レイアウト フォルダー内の otherlayout.phtml)。

于 2010-02-03T21:15:36.400 に答える
1

私の意見では、使用する方が良いです

$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('otherlayout');

使用するのではなく、あなたの見解で

$this->_helper->layout->setLayout('otherlayout');

コントローラーから。

後者の方法にはバグがあります。使った経験があります

$this->_helper->layout->setLayout('otherlayout');

新しいレイアウトが古いレイアウト内に表示されました。使った

$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('otherlayout');

それからそれは働いた

于 2011-02-02T02:48:55.740 に答える