我想知道我可以在Yii2中更改控制器的默认视图文件夹吗?
如果我们只使用public $layout
更改布局,我们如何才能使用视图?
Class HomeController extends \yii\web\Controller
{
public $layout = 'mylayout';
public $view = 'newview';
public function actionIndex()
{
return $this->render('index');
}
}
答案 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();
}