Heim  >  Artikel  >  Backend-Entwicklung  >  Die Laravel-API-Schnittstelle verwendet Validator und kann keine spezifischen Fehlerinformationen zurückgeben, die bei der Überprüfung fehlschlagen.

Die Laravel-API-Schnittstelle verwendet Validator und kann keine spezifischen Fehlerinformationen zurückgeben, die bei der Überprüfung fehlschlagen.

WBOY
WBOYOriginal
2016-10-19 10:40:492013Durchsuche

Validator wird in der API-Schnittstelle verwendet, um das Formular zu validieren;
Wenn es Elemente gibt, die die Überprüfung bestehen,
werden alle zurückgegeben

<code>{
  "message": "The given data failed to pass validation.",
  "status_code": 500
}</code>

Spezifische Informationen, die die Überprüfung nicht bestanden haben, können nicht zurückgegeben werden;
Wenn das Frontend oder das mobile Endgerät die zurückgegebene Fehlermeldung erhält;
Es kann dem Benutzer nicht mitgeteilt werden, welches Element die Anforderungen nicht erfüllt;
I What Ich will das;

<code>{
  "message": "邮箱已经注册",
  "status_code": 500
}

{
  "message": "必须是6-16位的密码",
  "status_code": 500
}</code>

Bitte sagen Sie mir, was ich tun soll?

Wenn Sie Laravel zum Schreiben von Schnittstellen verwenden;
Wie werden übermittelte Formularfelder überprüft? Wie kann ich Verifizierungsergebnisse zurückgeben?

Antwortinhalt:

Validator wird in der API-Schnittstelle verwendet, um das Formular zu validieren;
Wenn es Elemente gibt, die die Überprüfung bestehen,
werden alle zurückgegeben

<code>{
  "message": "The given data failed to pass validation.",
  "status_code": 500
}</code>

Spezifische Informationen, die die Überprüfung nicht bestanden haben, können nicht zurückgegeben werden;
Wenn das Front-End oder das mobile Endgerät die zurückgegebene Fehlermeldung erhält;
Es kann dem Benutzer nicht mitgeteilt werden, welches Element die Anforderungen nicht erfüllt;
I What Ich will das;

<code>{
  "message": "邮箱已经注册",
  "status_code": 500
}

{
  "message": "必须是6-16位的密码",
  "status_code": 500
}</code>

Bitte sagen Sie mir, was ich tun soll?

Wenn Sie Laravel zum Schreiben von Schnittstellen verwenden;
Wie werden übermittelte Formularfelder überprüft? Wie kann ich Verifizierungsergebnisse zurückgeben?

Laravel kann das Fehlerformat anpassen. Sie müssen die formatValidationErrors-Methode

in der Controller-Basisklasse überschreiben
<code>use Illuminate\Contracts\Validation\Validator;

protected function formatValidationErrors(Validator $validator)
{
     $message = $validator->errors()->first();
     return ['message'=>$message, 'status_code' => 500];
}</code>

Sie können es auch entsprechend Ihren eigenen Anforderungen erweitern. Das Obige ist nur ein einfaches Beispiel und die erste Fehlermeldung wird zurückgegeben.

Wenn Sie den dingo/apiValidierungshandler

verwenden

Natürlich können Sie auch

<code>if ($validator->fails()) {
     //自行封装个处理验证失败返回值 类似下面
     $this->respondWithValidatorError($validator->errors());    
}
</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Cookie-Login-PrinzipNächster Artikel:Cookie-Login-Prinzip