在 yii2 中设置错误动作布局不起作用

Jac*_*had 3 error-handling yii2 yii2-basic-app

为了设置错误操作,我在控制器中添加了此代码

public function beforeAction($action) {
    if ($action->id == 'error')
        $this->layout = 'iframe-main.php';

    $this->enableCsrfValidation = false;
    return parent::beforeAction($action);
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用。错误布局显示在默认布局中

Nic*_*sai 6

您可以使用 Yii2 官方yii\web\ErrorAction来处理控制器中的错误:

/**
 * {@inheritdoc}
 */
public function actions()
{
    return [
        'error' => [
            'class' => 'yii\web\ErrorAction',
            'layout' => 'login',
        ],
    ];
}
Run Code Online (Sandbox Code Playgroud)

请注意,我们可以设置layout用于更改错误视图布局的属性。

https://www.yiiframework.com/doc/api/2.0/yii-web-erroraction