Yii2 Benutzerdefinierte http-Ausnahmen Ansichten
In der Anmeldung habe ich den folgenden code, werfen ...HttpException
Protokollierung Fehler:
//common/models/LoginForm.php which is called from the backend SiteController actionLogin method as $model = new LoginForm();
public function loginAdmin()
{
//die($this->getUser()->getRoleValue()."hhh");
if ($this->getUser()->getRoleValue() >= ValueHelpers::getRoleValue('Admin') && $this->getUser()->getStatusValue() == ValueHelpers::getStatusValue('Active')){
if ($this->validate()){
return \Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30:0);
}
else{
throw new \yii\web\NotFoundHttpException('Incorrect Password or Username.');
}
}
else{
throw new \yii\web\ForbiddenHttpException('Insufficient privileges to access this area.');
}
}
Es ist in Ordnung, aber ich möchte die Seite anpassen, die gerendert mit jedem NotFoundHttpException
und ForbiddenHttpException
. Ich habe versucht, zu suchen, die Yii2-api zu finden, die Parameter definieren kann, Blick in das Konstrukt des Objekts, aber ich konnte nicht finden, dass. Also, gibt es eine Möglichkeit, benutzerdefinierte Ansicht von der Ausnahme?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom Mihai P. (Danke) Antwort, ich habe diese Antwort. Ich öffnete die Datei der error-Klasse an
vendor\yiisoft\yii2\web\ErrorAction.php
und ich habe festgestellt, dass Sie eine öffentliche Eigenschaft für die Ansicht, so dass ich beschloss, es zu benutzen und daher habe ich es definiert in dererror
array deractions
- Methode wie folgt:Schließlich in
common
- Ordner hatte ich einen neuen Ordner erstellen namensviews
und füllen Sie es mit einer view-Datei namenserror.php
mit den folgenden einfachen codeDen drei Variablen in den Blick
$name, $message and $exception
geliefert von der ErrorAction-Objekt, und Sie könnte in der die letzten Zeilen der DateiNehmen Sie einen Blick hier https://github.com/yiisoft/yii2-app-advanced/blob/master/frontend/controllers/SiteController.php
Können Sie sehen, dass es verwendet eine externe Aktion zum behandeln der Fehler
Können Sie entweder Ihre eigenen ErrorAction-Datei, erweitert den Standard ein und benutzen statt der Standard-eine von Yii, oder einfach nur kommentieren, die Aktion und erstellen Sie eine normale actionError und legen Sie es in dort.