formRequest怎么只返回首条数据?

默认返回的:

[
    'name' => '不能为空',
    'pass' => '不能为空'
]

期望返回,只返回首条:

[
    'name' => '不能为空',
]

目前可以修改vendor源码得到想要的,但是源码都在vendor目录,不方便

// 在\Illuminate\Foundation\Http\FormRequest里添加此方法 
protected function failedValidationJson(Validator $validator) { 
    $error = $validator->errors()->all()[0]; 
    throw new HttpResponseException(response()    
    ->json(['data'=>$error,'code'=>200,'msg'=>300])); 
}

有没有其他解决方式?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
Tomo11111
最佳答案

可以重写 FormRequest 的 failedValidation 来实现

class BaseFormRequest extends FormRequest
{
    /**
     * @param Validator $validator
     */
    public function failedValidation($validator)
    {
        throw new HttpResponseException(
            response()->json(['message' => $validator->errors()->first()], 400)
        );
    }
}
2年前 评论
讨论数量: 3

自己复制一份再更改这个方法,再提前引入自己复制的文件

2年前 评论
Tomo11111

可以重写 FormRequest 的 failedValidation 来实现

class BaseFormRequest extends FormRequest
{
    /**
     * @param Validator $validator
     */
    public function failedValidation($validator)
    {
        throw new HttpResponseException(
            response()->json(['message' => $validator->errors()->first()], 400)
        );
    }
}
2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!