在某些情况下,如果YII_DEBUG=false,YII不会使用我的错误页面

在某些情况下,如果YII_DEBUG=false,YII不会使用我的错误页面,yii,yii2,Yii,Yii2,我的Yii错误页面工作正常,但在某些情况下除外。例如,如果我使用 // Using "param" instead of params to cause exception Yii::$app->para['test']; 用我的配置 'errorHandler' => [ 'errorAction' => 'site/error', ], 然后我将YII_DEBUG设置为false 我得到的只是一张白纸,上面写着 发生内部服务器错误 这正常吗?除了某些例外情况,Y

我的Yii错误页面工作正常,但在某些情况下除外。例如,如果我使用

// Using "param" instead of params to cause exception
Yii::$app->para['test'];
用我的配置

'errorHandler' => [
    'errorAction' => 'site/error',
],
然后我将
YII_DEBUG
设置为
false

我得到的只是一张白纸,上面写着

发生内部服务器错误

这正常吗?除了某些例外情况,Yii将只调用
die()
exit()
,而不调用其他详细信息

错误代码:

public function actionError()
{
    Yii::$app->session->destroy();

    if ($error = Yii::$app->errorHandler->exception) {
        if (Yii::$app->request->isAjax)
            echo $error->getMessage();
        else
            return $this->render('error', ['error' => $error]);
    }
}

你能展示你的错误动作吗?当然!更新了我的问题!是的,这是预期的行为。Yii2应用程序中不存在
para
属性,因此应用程序抛出编译错误。由于您关闭了调试模式,它假定
生产环境
,因此不会直接向用户显示任何敏感信息,而是将错误记录到错误日志文件/数据库中(取决于记录器配置)。