使用表单请求时如何使用laravel捕获验证失败

时间:2016-04-27 07:27:48

标签: php jquery json laravel

我使用带有laravel 5.2的formrequest文件来检查输入。这个表单我使用jquery的$ .post函数进行调用。在我的控制台中,它返回 422 Unprocessable Entity ,我怀疑它来自响应,因为我没有将其格式化为json。做is this

的一种方法

我想知道如何从我的表单请求中调用,即将输出消息更改为json的方法。

谢谢!

更新1

JQuery看起来像这样:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('input[name="csrf-token"]').val()
    }
});

$("#changePassword").on('click', function(e){
    e.preventDefault();

    var data = {};
    data.name = $("input[name='name']").val();
    data.surname = $("input[name='surname']").val();
    data._token = $('input[name="_token"]').val();

    $.post('url',data).done(function(data){
        $(".message").empty().html("Done!");
    }).fail(
        function(response, status){

        }
    );
});

1 个答案:

答案 0 :(得分:2)

覆盖请求类中的响应方法,如下所示

    /**
     * Get the proper failed validation response for the request.
     *
     * @param  array  $errors
     * @return \Symfony\Component\HttpFoundation\Response
     */
    public function response(array $errors)
    {
        return Response::json([
            'error' => [
                'message' => $errors,
            ]
        ]);
    }