Не отображает результат валидации (laravel)
При обновлении записи выводит session('success'), но в случае пустых поле не выводит session('errorr'), в чем может быть проблема? Контроллер:
public function store(Request $request)
{
$validate = $request->validate([
'name' => 'required',
'type_sklad' => 'required',
]);
if(Sklad::create($request->all())){
return redirect()->back()->with('success', 'Склад создан');
}
return redirect()->back()->with('error', 'Все поля должны быть заполнены');
}
View:
@if(session('success'))
<div class="alert alert-success" role="alert">
{{session('success')}}
</div>
@endif
@if(session('error'))
<div class="alert alert-danger" role="alert">
{{session('error')}}
</div>
@endif
Ответы (1 шт):
Автор решения: Vladimir Gonchar
→ Ссылка
Потому что Вы никогда не достигните session('error'), валидация порождает свое исключение (throw new ValidationException под капотом).
Обрабатывайте ошибки по переменной $errors в blade:
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif