@Aslero

Как вернуть ответ валидатора Request в Ларавел в json?

есть LocalizationRequest

public function rules()
    {

        return [
            'name' => ['required', 'string', 'max:255'],
            'code' => ['required', 'string', 'max:255'],
            'locale' => ['required', 'string', 'max:255'],
            'image' => ['required', 'string', 'max:255'],
        ];
    }


подскажите, как вернуть мне результат в таком виде

return response()->json([
'error' => 0,
'message' => результат валидации
])

пробовал что-то такое, но не работает

public function store(LocalizationRequest $request)
    {
                $v = $request->validated();
                $errors_m = '';
                if ($v->fails())
                {
                    $errors = $v->errors();
                    foreach ($errors->all() as $error){
                        $errors_m.= $error;
                    }
                    return response()
                        ->json([
                            'message' => $errors_m,
                            'error' => 1,
                        ], 200);
                }
}
  • Вопрос задан
  • 487 просмотров
Решения вопроса 1
@jazzus
LaravelRequest автоматом вернет ошибки и код в ответе. Т.е. можно не писать велосипеды.

Достать ошибки в js скрипте (фреймворк VUE)
// аякс запрос
.catch((error)=> {
  this.errors = error.response.data.errors;
});

подсчитать ошибки в computed
errors_count: function () {
   return Object.keys(this.errors).length;
},

будет доступно errors_count
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы