嗯,这部分非常重要。我正在与 YII 合作一个项目。我遇到了一个问题,例如,我试图在控制器中设置一个带有布局的操作。首先,这个动作甚至没有采用提到的默认布局,另一个动作actionIndex()
在同一个控制器上工作正常。然后我$this->layout='//layouts/new'
在控制器中尝试了,甚至在视图渲染到控制器时尝试了它。那甚至行不通。我检查了它是否返回任何$content
布局new.php
。但它甚至没有出现在 new.php 中。die()
即使我把它放在布局的第一行也不起作用。我需要这方面的帮助。
问问题
6756 次
3 回答
4
public function actionTest() {
$this->layout = 'new';
$this->render('test');
}
在视图/布局文件夹中创建新布局。
于 2013-01-17T09:55:43.217 回答
3
在我看来,您的操作甚至没有到达需要渲染视图的位置。操作代码中可能存在某种错误,阻止它进行到最后。为了进行测试,请清除操作中除以下内容之外的所有代码,并在此处发布您的错误。
$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 信息的位置
于 2013-01-17T20:14:32.020 回答
0
把它放在你的控制器中(yii 1.1)
public function beforeAction($action) {
$this->layout = '//layouts/newlayout';
return true;
}
于 2020-06-17T15:01:15.857 回答