Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何更改Yii2中控制器的默认视图?_Php_Yii2 - Fatal编程技术网

Php 如何更改Yii2中控制器的默认视图?

Php 如何更改Yii2中控制器的默认视图?,php,yii2,Php,Yii2,我想知道我是否可以更改Yii2中控制器的默认视图文件夹 如果我们只需使用public$layout就可以更改布局,那么如何使用view来更改布局呢 Class HomeController extends \yii\web\Controller { public $layout = 'mylayout'; public $view = 'newview'; public function actionIndex() { return $this-

我想知道我是否可以更改Yii2中控制器的默认视图文件夹

如果我们只需使用
public$layout
就可以更改布局,那么如何使用view来更改布局呢

Class HomeController extends \yii\web\Controller
{
    public $layout = 'mylayout';
    public $view = 'newview';

    public function actionIndex()
    {
        return $this->render('index');
    }    
}

为了实现控制器应该实现的目标

然后只需添加方法,该方法应返回所需的目录路径:

public function getViewPath()
{
    return Yii::getAlias('@frontend/views/newview');
}
你可以在这里使用别名


还可以查看有关组织视图的官方信息。

自2.0.7以来,您只需在控制器的init()方法中编写:
$this->viewPath='@app/yourViewPath'
我在Yii 2.0.42.1上,并将其添加到我的控制器中

public function init()
{
     $this->viewPath = '@app/modules/report/views/test';

      parent::init();
}

完美@arogachev非常感谢你谢谢你
yii\base\Controller
已经实现了该接口,因此
implements ViewContextInterface
在这里是多余的。
public function init()
{
     $this->viewPath = '@app/modules/report/views/test';

      parent::init();
}