我是 Yii2 的新手,
当我开始创建网站时,我发现您可以在配置中设置ErrorAction,如下所示
'errorHandler' => [
'errorAction' => 'site/error',
],
使用layout/main.php 中的布局时出现该错误。当访客访问位于“视图/站点”中的页面时,将使用该布局。但是,当用户登录位于不同文件夹“view/band”的视图页面时,布局变得完全不同并使用“layout/BandLayout”。我知道你可以在控制器中动态更改布局,就像我在 BandController 中所做的那样
public $layout ='BandLayout';
这将改变“视图/带”中的整个布局。但是,当出现“404”之类的错误时,布局仍然使用layout/main.php 中的布局。我已经做了一些搜索,但在模块中使用 init() 的解决方案。由于我还没有学习模块,如何在控制器中设置错误布局的布局?
谢谢
您应该更改布局SiteController
,你可以使用beforeAction
, e.g. :
public function beforeAction($action)
{
if (parent::beforeAction($action)) {
// change layout for error action
if ($action->id=='error')
$this->layout ='BandLayout';
return true;
} else {
return false;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)