Если валидатор терпит неудачу, не возвращайте обратно — Laravel

#laravel

#laravel

Вопрос:

Если я нажимаю на кнопку, отображается форма (гибкий график отображения) из включаемого файла.

 $('.show-restaurant').click(function(){
    openModal($('.visit-restaurant'));
}); 

Что мне нужно ввести в мой раздел «сбой валидатора», чтобы форма не возвращалась обратно, а оставалась как «гибкий дисплей» и возвращала ошибки? Я использую Laravel 7.

         $inputs = request()->all();

        $validator = Validator::make($inputs, [
            'name' => 'required',
            'surname' => 'required',
            'email' => 'required|email',    
            'number' => 'required',
            'date' => 'required',
            
        ]);

        if($validator->fails()) {
            return back()
                        ->withErrors($validator);
        }

        $data = array(
            'name' => request()->name,
            'surname' => request()->surname,
            'email' => request()->email,
            'number' => request()->number,
            'date' => request()->date,
            'more_details' => request()->more_details,
        ); 

Комментарии:

1. почему вы не используете проверку ввода HTML для таких проверок?

2. @VPC любые правила проверки на стороне клиента (HTML, JS) можно легко удалить

3. как только вы получите свои ошибки в формате json, вы можете использовать jquery или любой другой интерфейс для отображения ошибок

Ответ №1:

Вы можете вернуть его в виде json или даже если запрос является ajax, laravel автоматически отправляет ответ в формате json. Для отправки сообщений об ошибках в формате json,

 if($validator->fails()) {
            return response()->json(['errors'=>$validator->errors()]);
        }