嗯,这部分非常重要。我在和YII一起做一个项目。我遇到过这样的问题,我试图用布局在控制器中设置一个动作。首先,这个动作甚至没有采用提到的默认布局,而另一个动作actionIndex()
在同一控制器上运行良好。然后我尝试了$this->layout='//layouts/new'
在控制器甚至朋友视图渲染到控制器上。这根本没用。我检查了它是否返回任何$content
到布局new.php
。但它甚至没有到new。php。die()
不工作,即使我把它放在布局的第一行。我需要帮助。
public function actionTest() {
$this->layout = 'new';
$this->render('test');
}
在views/layouts文件夹中创建新的布局。
这听起来像你的行动甚至没有使它到需要渲染视图的地方。操作代码中可能存在某种错误,使其无法执行到最后。对于测试,清除操作中除以下代码以外的所有代码,并在这里发布您的错误。
$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信息的地方
把这个放到你的控制器(yii 1.1)
public function beforeAction($action) {
$this->layout = '//layouts/newlayout';
return true;
}