Может быть, вы хотели бы попробовать, если у вас есть имена полей "one_thing" и "another_thing"
$error = Illuminate\Validation\ValidationException::withMessages([
"one_thing" => ["Validation Message #1"],
"another_thing" => ['Validation Message #2']
]);
throw $error;
проверьте метод withMessages () определение
public static function withMessages(array $messages)
{
return new static(tap(ValidatorFacade::make([], []), function ($validator) use ($messages) {
foreach ($messages as $key => $value) {
foreach (Arr::wrap($value) as $message) {
$validator->errors()->add($key, $message);
}
}
}));
}
Ключи обрабатываются как имена полей, так что $ ошибки, которые вы будете проходить, будут связаны с соответствующими полями.
, поэтому в основном похоже на
$error = \Illuminate\Validation\ValidationException::withMessages([
'field_name_1' => ['Validation Message for field name 1'],
'field_name_2' => ['Validation Message for field name 2'],
'field_name_3' => ['Validation Message for field name 3'],
]);
throw $error;
Попробуйте это
Код формы:
<form action="{{ route('test-validation') }}" method="POST">
@csrf
<input type="text" name="test" value="" />
@if( $errors->has('test') )
@foreach( $errors->get('test') as $err )
{{ $err }}
@endforeach
@endif
<input type="submit" name="submit" value="Submit" />
</form>
и в ваших маршрутах / web.php
use Validator;
use Illuminate\Validation\ValidationException;
use Illuminate\Http\Request;
Route::post('test-validation', function(Request $request){
$fields = array('test' => $request->input('test'));
$rules = array('test' => 'required|min:5');
$validator = Validator::make($fields, $rules); // Empty data and rules fields
$validator->errors()->add('test', 'This is the error message for test field');
throw new ValidationException($validator);
redirect()->withErrors($validator);
})->name('test-validation');
С помощью этого кода вы сможете правильно получать ошибки.