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

Gam*_*mma 5 php yii2

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

如果我们只是通过使用来改变布局public $layout,我们如何用视图来做?

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

    public function actionIndex()
    {
        return $this->render('index');
    }    
}
Run Code Online (Sandbox Code Playgroud)

aro*_*hev 8

要实现这一点,您的控制器应该实现ViewContextInterface.

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

class HomeController extends Controller implements ViewContextInterface
Run Code Online (Sandbox Code Playgroud)

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

public function getViewPath()
{
    return Yii::getAlias('@frontend/views/newview');
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里使用别名.

另请查看有关组织视图的官方文档.

  • 谢谢.`yii\base\Controller`已经实现了接口,所以`implements ViewContextInterface`在这里是多余的. (4认同)