Ce que cet article vous apporte est une introduction à la gestion des erreurs de réécriture dans FormRequest dans Laravel (exemples de code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
La validation par défaut dans le framework laravel, lors de la gestion des erreurs, revient par défaut à la page précédente, et ne renvoie Json que lorsqu'il est ajax. Si nous voulons toujours renvoyer Json, alors nous devons réécrire la gestion des erreurs
comme suit : Dans le répertoire Requests, créez simplement une nouvelle classe BaseRequest
Le code est le suivant
<?php /** * @文件名称: BaseRequest.php. * @author: daisc * @email: jiumengfadian@live.com * @Date: 2019/1/8 */ namespace App\Http\Requests\Front; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Exceptions\HttpResponseException; class BaseRequest extends FormRequest { public function failedValidation($validator) { $error= $validator->errors()->all(); // $error = $validator; throw new HttpResponseException(response()->json(['code'=>1,'message'=>$error[0]])); } }
réécrit la méthode failedValidation
et gère l'erreur générée au format json
.
Ensuite, dans la classe de vérification du traitement personnalisé, héritez simplement de cette classe
Par exemple : RegisterForm
dans
<?php namespace App\Http\Requests\Front; class RegisterForm extends BaseRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'phone'=>'required|regex:"^1\d{10}"', 'email' => 'required|email', 'password'=>'required|confirmed' ]; } public function messages() { return [ 'phone.required'=>'手机号不能为空', 'phone.regex'=>'请输入正确的手机号', ]; } }
Lorsque nous appelons RegisterForm dans le contrôleur, nous renverrons les informations d'erreur dans. Format Json.
Peu importe qu'il s'agisse d'AJAX
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!