嗯,这部分非常重要。我正在和YII合作开展一个项目。我遇到了一个问题,我试图在控制器中用布局设置我的一个动作。首先,这个动作甚至没有采用所提到的默认布局,其中另一个动作actionIndex()
在同一控制器上正常工作。然后我在控制器中尝试了$this->layout='//layouts/new'
,甚至在渲染到控制器的视图上进行了操作。那甚至不起作用。我检查了它是否会向布局$content
返回任何new.php
。但它甚至没有进入new.php。即使我将它放在布局的第一行,die()
也无效。我需要帮助。
答案 0 :(得分:4)
public function actionTest() {
$this->layout = 'new';
$this->render('test');
}
在views / layouts文件夹中创建新布局。
答案 1 :(得分:2)
听起来我觉得你的行动甚至没有把它带到需要渲染视图的地方。动作代码中可能存在某种错误,阻止它进展到最后。要进行测试,请清除以下操作中的所有代码,并在此处发布错误。
$this->layout = '//layouts/new';
$this->render('view',array(
'model'=>$model,
));
这假定您已定义以下布局和视图:
protected/views/layouts/new.php
protected/views/<controllername>/view.php
new.php是回显$ content的地方,view.php是显示$ model信息的地方
答案 2 :(得分:0)
将其放入您的控制器(yii 1.1)
public function beforeAction($action) {
$this->layout = '//layouts/newlayout';
return true;
}