Return ajax validation from request Laravel 5?

Добрый день! Слаб с JS да и с laravel не очень то силен(

Сначала сделал вот такую "валидацию", но ведь это дурной тон?
$extention = $request->file('file')->getClientOriginalExtension();


        if( $extention == 'jpg' or $extention == 'jpeg' or $extention == 'png' or $extention == 'rar' )
        {
            $name = $request->file('file')->getClientOriginalName();
            $img = $name .".".$extention;
            if( $request->file('file')->move( base_path() . '/public/images/catalog/', $img ) )
            {
                $status = true;
            }
        }
        else{
            $status = false;
        }
        return response()->json([ "STATUS" => $status ]);

Используя такой подход я получаю ответ в виде JSON и вывожу клиенту нужное сообщение. Но хочется использовать "правильную" валидацию. потому написал так - php artisan make:request RequestName и там вообщем то написал
public function rules()
    {
        return [
            //
            'file' => 'required|mimes:jpg,png,mp4,webm',
        ];
    }

И вот тут мне не ясно как вернуть результат валидации в виде JSON для последующей его обработки? Спасибо!
  • Вопрос задан
  • 1441 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Result007
P|-|P
Привет! Попробуй такой вариант :)

// Правила можешь вынести в функцию в модели
$rules = [
    'file' => 'required|mimes:jpg,png,mp4,webm',
];

$validation = Validator::make($request->all(), $rules);
if( $validation->fails() ) {
    $errors = $validation->messages()->toJson();
}

return response()->json([ "errors" => $errors ]);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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