Довольно просто на самом деле. Точно так же, как $errors
глобально передается во внешний интерфейс и имеет метод has()
, вы можете проверить ошибку в Controller
перед перенаправлением:
$validator = Validator::make($request->all(), [
'name' => 'required|max:255',
'file' => 'required|max:2000',
]);
if ($validator->fails()) {
// do something depending the error before returning and redirect
if($validator->errors()->has('name')){
// Do whatever for `name` issue.
}
if($validator->errors()->has('file')){
// Do whatever for `file` issue.
}
return back()
->withErrors($validator)
->withInput(); // Don't need `redirect()->back()`, `back()` is enough.
}
Обратите внимание, это перехватитоба правила required
и max
. Чтобы проверить отдельные правила, вы можете использовать метод failed()
в сочетании с isset()
:
if ($validator->fails()) {
$failedValidation = $validator->failed();
if(isset($failedValidation['name']['Max'])){
...
}
if(isset($failedValidation['file']['Max'])){
...
}
...
}