如何在Yii 2.0中显示自定义错误页面而不是外键错误

Am getting Integrity constraint violation – yii\db\IntegrityException Error when am delete a row without deleting a row in foreign key table.

How i can show custom Error Page instead of Integrity constraint violation – yii\db\IntegrityException Error in Yii 2

How i can catch and throw exception for this in Yii 2.0

Image

This will not actually the answer you have asked but I have customized error handler in Yii1, and hope it have same behavior in Yii2. You can change it on config/main.php as:

 'errorHandler' => [
            'errorAction' => 'site/error' // To error/errorHandler
  ],

And the Controller Class error have the following lines. You can change it on your need.

class ErrorController extends CController {

    public $layout = '//layouts/column1';
    /**
     * This is the action to handle external exceptions.
     */
    public function actionErrorHandler() {
        if ($error = Yii::app()->errorHandler->error) {
            if ('CDbException' != $error['type']) {
                if (Yii::app()->request->isAjaxRequest)
                    echo $error['message'];
                else
                    $this->commonError($error);
            }else if ('CDbException' == $error['type']) {
                if (Yii::app()->request->isAjaxRequest)
                    echo $error['message'] = 'The system is unable to resolve the database error !';
                else
                    $this->databaseError($error);
            }
        }
    }

    /**
     * 
     * @param type array $error
     * @access : Internal, type private
     * @throws: Http exception.
     */
    private function commonError($error) {
        $this->render('code_error', $error);
    }

    /**
     * 
     * @param type array $error
     * @throws Exception
     */
    private function databaseError($error) {
        if (empty($error)) {
            $error['code'] = '404';
            $error['message'] = 'Unknown error !';
            $this->render('code_error', $error);
            Yii::app()->end(0, true);
        }

        $error['message'] = 'The system is unable to resolve the database error !';
        $this->render('database_error', $error);
    }

}