1

嗯,这部分非常重要。我正在与 YII 合作一个项目。我遇到了一个问题,例如,我试图在控制器中设置一个带有布局的操作。首先,这个动作甚至没有采用提到的默认布局,另一个动作actionIndex()在同一个控制器上工作正常。然后我$this->layout='//layouts/new'在控制器中尝试了,甚至在视图渲染到控制器时尝试了它。那甚至行不通。我检查了它是否返回任何$content布局new.php。但它甚至没有出现在 new.php 中。die()即使我把它放在布局的第一行也不起作用。我需要这方面的帮助。

4

3 回答 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 回答