Laravel 6 валидация: есть ли ограничения на количество правил? - PullRequest
3 голосов
/ 31 января 2020

Я использую Laravel 6.13.1.

У меня есть следующая проверка

$validator = Validator::make($request->all(), [
    'name' => 'required|max:100',
    'email' => 'required|email',
    'mobile_number' => 'required',
    'date_of_birth' => 'required',
    'address' => 'required',
    'category' => 'required',
    'other_category' => 'required_if:category,==,Others',
    'sub_caste' => 'required',
    'photo' => 'required',
    'status' => 'required|integer',
    'father_name' => 'required',
    'father_occupation' => 'required',
]);


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

У него 12 правил, и он работает. Если я добавлю еще одно правило, то валидатор перестанет работать.

{{$ errors}} выдаст пустой массив в файле представления.

Редактировать 1: проверка с 12 правилами показывает все ошибки сообщения, но если я добавлю еще одну проверку, например

$validator = Validator::make($request->all(), [
    'name' => 'required|max:100',
    'email' => 'required|email',
    'mobile_number' => 'required',
    'date_of_birth' => 'required',
    'address' => 'required',
    'category' => 'required',
    'other_category' => 'required_if:category,==,Others',
    'sub_caste' => 'required',
    'photo' => 'required',
    'status' => 'required|integer',
    'father_name' => 'required',
    'father_occupation' => 'required',
    'mother_name' => 'required',         
]);

, то сообщений об ошибках не будет. {{$ errors}} - пустой массив.

На мой взгляд, я использую следующий код для перечисления ошибок

      @if (count($errors) > 0)
      <div class="alert alert-danger">
        <ul>
          @foreach ($errors->all() as $error)
          <li>{{ $error }}</li>
          @endforeach
        </ul>
      </div>
      @endif

Редактировать 2: я пытался такая же проверка на Laravel 5.5, и она работает хорошо, как с отступом.

Ответы [ 2 ]

1 голос
/ 24 марта 2020

Я столкнулся с той же проблемой и где-то обнаружил, что, возможно, это связано с размером сообщений об ошибках. Я изменил опцию env SESSION_DRIVER с "cook ie" на "file", и это сработало!

0 голосов
/ 01 февраля 2020

Я не думаю, что у него есть ограничение, однако вы можете создать запрос и поместить в него всю свою проверку следующим образом:

php artisan make:request UserRequest

Вы можете проверить эту ссылку Форма запроса Проверка

...