Laravel 5.x(主)表单请求验证响应为json

时间:2015-12-13 06:59:57

标签: php angularjs json laravel laravel-5.1

有没有办法将表单请求错误作为json返回?

我正在为AngularJS制作一个API,我遇到了错误标志

的问题

这是我的规则:

class CreateProductRequest extends Request
{
    public function rules()
    {
    return [
            'code'=>'required|unique:products',
            'style'=>'required|max:12',
            'measure'=>'required|max:12',
        ];
    }

这是CreateProductRequest

的回复
{
    code: [0: "Code is required"],
    style:[0: "Style is required"],
    measure:[ 0: "Measure is required"]
}

我想要与控制器上的$ validator-> errors() - > all()相同的结果,如下所示:

"messages": [
    "Code is required",
    "Style is required",
    "Measure is required"
]

如何从表单请求中获取此结果?

Laravel版本:主人

2 个答案:

答案 0 :(得分:0)

试试这个

return $validator->errors()->all()->toJson();

答案 1 :(得分:0)

表单请求错误已作为json返回给AJAX请求。但要实现所需的结构,必须覆盖vendor / laravel / framework / src / Illuminate / Foundation / Http / FormRequest.php中的响应函数

从那里复制函数并将其粘贴到app / Http / Requests / Request.php中的Request类中。更改以下行:

AsyncTask

到此:

object.setId(id);

而不是200,您可以返回您已经使用的任何其他状态代码,可能来自4xx系列。 在此文件的顶部添加:

    return new JsonResponse($errors, 422);