laravel中使用FormRequest进行表单验证,验证异常返回JSON

laravel中使用FormRequest进行表单验证,验证异常返回JSON,第1张

概述通常在项目中,我们会对大量的前端提交过来的表单进行验证,如果不通过,则返回错误信息。 前端为了更好的体验,都使用ajax进行表单提交,虽然 validate() 方法能够根据前端的不同请求方式,返回不

通常在项目中,我们会对大量的前端提交过来的表单进行验证,如果不通过,则返回错误信息。@H_301_1@

前端为了更好的体验,都使用AJAX进行表单提交,虽然 valIDate() 方法能够根据前端的不同请求方式,返回不同的结果。@H_301_1@

但是返回的Json格式并不是我们想要的,这个时候,我们就需要自定义返回错误结果。@H_301_1@

先创建一个表单请求类:@H_301_1@

PHP artisan make:request TestRequest

然后在 rules() 和 messages() 方法里填写自已的验证规则和消息@H_301_1@

<?PHPnamespace App\http\Requests;use Illuminate\Foundation\http\FormRequest;use Illuminate\Contracts\ValIDation\ValIDator;use Illuminate\http\Exceptions\httpResponseException;class TestRequest extends FormRequest{    /**     * 控制访问权限     */    public function authorize()    {        //注意,默认是false,改成true        return true;    }    /**     * 验证规则     */    public function rules()    {        return [            'name' => 'required','pwd' => 'required',];    }    /**     * 验证消息     */    public function messages()    {        return [            'name.required' => '姓名必填','pwd.required' => '密码必填',];    }}

注意,父类 FormRequest中的 FailedValIDation() 方法用来处理验证失败,我们重写父类方法,来实现自已的返回。@H_301_1@

public function FailedValIDation(ValIDator $valIDator){    throw (new httpResponseException(response()->Json([        'status_code' => 500,'message' => '请求错误','data' => $valIDator->errors()->first(),],200)));}

注意 FailedValIDation() 方法的 $valIDator 参数是 Illuminate\Contracts\ValIDation\ValIDator 对象,不是 Illuminate\ValIDation\ValIDator,不要搞错了。@H_301_1@ 总结

以上是内存溢出为你收集整理的laravel中使用FormRequest进行表单验证,验证异常返回JSON全部内容,希望文章能够帮你解决laravel中使用FormRequest进行表单验证,验证异常返回JSON所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1268159.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存