YII Umgang mit benutzerdefinierten 404-Fehlerseiten zusammen mit anderen Fehlerseiten

Ich möchte die 404-Fehlerseite anzeigen, für die ich die Datei error404.php in meinem Ordner protected / view / system erstellt habe.

Standardmäßig habe ich Sitecontroller und es enthielt Fehleraktion Funktion wie folgt

public function actionError()
{
    if($error=Yii::app()->errorHandler->error)
    {

        if(Yii::app()->request->isAjaxRequest)
            echo $error['message'];
        else
            $this->render('error', $error);
    }
}

In der Hauptkonfigurationsdatei ist definiert als

    'errorHandler'=>array(
        // use 'site/error' action to display errors
        'errorAction'=>'site/error',
    ),

Mein Problem ist, dass ich nur die 404-Seite anpassen muss. Der Rest des Fehlers muss so behandelt werden, wie er von der Fehlerfunktion von SiteController behandelt wird. Aber ich konnte keinen Weg finden, das zu tun. Angenommen, ich entferne 'errorAction' => 'site / error' aus dem Konfigurations-Hauptfenster, dann wird der 404-Fehler durch Aufrufen angezeigt

        throw new CHttpException(404, 'Page not found');

aber dabei kann ich nur die Seite ohne Layout sehen, auch andere benutzerdefinierte Fehler werden genauso behandelt wie 404, obwohl dies nicht der Fall ist. Ich habe das Handbuch oft gelesen, kann es aber immer noch nicht beheben.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage