Я не могу вернуть JSON из Laravel 5.5 Validator - PullRequest
0 голосов
/ 26 мая 2018

У меня есть конечная точка Laravel API для хранения событий.

Я добавил этот метод в запрос формы : StoreEventRequest, чтобы улучшить ответы об ошибках:

/**
 * 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.

Я тестирую на Почтальоне.

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Вы пытались добавить код ответа http в качестве второго параметра к вызову функции ?,

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

], 400); // 400 is the response code
0 голосов
/ 26 мая 2018

попробуй

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

    return $validator->messages()->toArray();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...