我无法从Laravel 5.5 Validator返回json

时间:2018-05-26 19:47:09

标签: php laravel validation request laravel-5.5

我有一个Laravel API端点来存储事件。

我在form requestStoreEventRequest中添加了此方法以改进错误响应:

/**
 * Reformat Errors.
 *
 * @param Validator $validator
 *
 * @return array
 */
protected function withValidator(Validator $validator)
{
    if ($this->wantsJson()) {
        $messages = reformatMessages($validator->messages());
        dd($messages); // If I do this I can see the messages, otherwise response is blank.
        return response()->json([
            'success' => false,
            'message' => $messages
        ]);
    }

    return $validator->messages()->toArray();
}

但是,如果缺少参数响应则为空白。如果我dd我可以看到格式良好的格式,但没有任何内容从return返回。

我正在测试Postman。

2 个答案:

答案 0 :(得分:0)

protected function withValidator(Validator $validator)
{
    if ($this->wantsJson()) {
        $messages = reformatMessages($validator->messages());
        throw new HttpResponseException(response()->json($messages, 422));
    }

    return $validator->messages()->toArray();
}

答案 1 :(得分:0)

您是否尝试将http响应代码添加为函数调用的第二个参数?,

return response()->json([
     'success' => false,
     'message' => $messages

], 400); // 400 is the response code