Heim > Artikel > Backend-Entwicklung > Die Laravel-API-Schnittstelle verwendet Validator und kann keine spezifischen Fehlerinformationen zurückgeben, die bei der Überprüfung fehlschlagen.
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?
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
<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/api
Validierungshandler
Natürlich können Sie auch
<code>if ($validator->fails()) { //自行封装个处理验证失败返回值 类似下面 $this->respondWithValidatorError($validator->errors()); } </code>