有没有一种方法可以处理来自php artisan make:request发出的请求的响应?

有没有一种方法可以处理来自php artisan make:request发出的请求的响应?,php,laravel,exception,python-requests,httpresponse,Php,Laravel,Exception,Python Requests,Httpresponse,我收到Laravel wit FormRequest extend的请求,并附上以下规则和信息: public function rules() { return [ 'login' => 'required', 'password' => 'required', ]; } public function messages() { return [ 'login:required' => 'Login i

我收到Laravel wit FormRequest extend的请求,并附上以下规则和信息:

public function rules()
{
    return [
        'login' => 'required',
        'password' => 'required',
    ];
}

public function messages()
{
    return [
        'login:required' => 'Login is required',
        'password:required' => 'Password is required'
    ];
}
现在我收到了这样的回复:

{
    "message": "The given data was invalid.",
    "errors": {
        "login": [
            "The login field is required."
        ],
        "password": [
            "The password field is required."
        ]
    }
}
但我想要这样的东西:

{
    "status": false,
    "validator": true,
    "msg": {
        "e": {
            "login": [
                "The login field is required."
            ],
            "password": [
                "The password field is required."
            ]
        },
        "type": "error"
    }
}
这可能吗

因为现在我用这个代码来得到:

$item = Validator::make($request->all(), [
    'login' => 'required',
    'password' => 'required',
]);

if ($item->fails())
    return response()->json([
        'status' => false,
        'validator' => true,
        'msg' => [
            'e' => $item->messages(),
            'type' => 'error'
        ],
    ]);

但是我想根据larave提出的请求(php artisan make:Request)

是的,您可以这样做。将此方法添加到表单请求类:

use Illuminate\Contracts\Validation\Validator;
use Illuminate\Http\Exceptions\HttpResponseException;

// ...

protected function failedValidation(Validator $validator)
{
    $data = [
        'status'    => false,
        'validator' => true,
        'msg'       => [
            'e'    => $validator->errors(),
            'type' => 'error',
        ],
    ];

    throw new HttpResponseException(response()->json($data, 422));
}

我得到这样的回应:
{“消息”:“服务器错误”}
@Marius my bad。请用我更新的答案再试一次。我已经测试过了,效果很好。