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])); 
}

有没有其他解决方式?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
Tomo11111
最佳答案

可以重写 FormRequest 的 failedValidation 来实现

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

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

3年前 评论
Tomo11111

可以重写 FormRequest 的 failedValidation 来实现

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

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