Я использую 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, и она работает хорошо, как с отступом.