所属分类:php教程
laravel 框架中默认的validate验证,在处理错误的时候,默认是返回上一页,当为ajax的时候才会返回Json。如果我们要一直返回Json的话,那么需要重写错误处理
如下:在Requests目录只用 新建BaseRequest类
代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?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]])); } } |
重写了failedValidation
方法,将抛出错误处理为了json
格式的。
然后在自定义的处理验证类中,继承该类就行了,
如:RegisterForm
中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | <?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' => '请输入正确的手机号' , ]; } } |
当我们在控制器中调用RegisterForm的时候,就回返回Json格式的错误信息。
不分是否是AJAX
以上就是Laravel中FormRequest中重写错误处理的介绍(代码示例)的详细内容,更多请关注zzsucai网其它相关文章!