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

时间:2014-12-30 02:38:17

标签: php yii2

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

如果我们只使用public $layout更改布局,我们如何才能使用视图?

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

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

3 个答案:

答案 0 :(得分:8)

要实现控制器应该实现ViewContextInterface

use yii\base\ViewContextInterface;
use yii\web\Controller;

class HomeController extends Controller implements ViewContextInterface

然后只需添加应返回所需目录路径的getViewPath()方法:

public function getViewPath()
{
    return Yii::getAlias('@frontend/views/newview');
}

您可以在此处使用别名。

另请查看有关组织观点的官方documentation

答案 1 :(得分:2)

从2.0.7开始,您只需在控制器的init()方法中编写:$this->viewPath = '@app/yourViewPath'

答案 2 :(得分:0)

我使用的是 Yii 2.0.42.1,并将其添加到我的控制器中。

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

      parent::init();
}