Я приведу полный пример, показывающий ошибки для каждого поля: - Существует много способов проверки вашей формы в laravel 1) Метод запроса
public function form(Request $request)
{
$request->validate([
'field1' => 'require|min|max',
'fields2' =>'require|min|max'
],
[
'field1.require' => 'your msg',
'field1.max' => 'your msg',
'field1.min' => 'your msg',,
'field2.require' => 'your msg',
]
);
}
2) Создав отдельный файл с помощью php artisan make: request filename.this файл будет создан в папке app \ html \ request с правами доступа, методами правил, вы определите еще несколькометод как сообщение для пользовательского сообщения и метод атрибута, чтобы дать другое имя поля. пример:
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'email' => 'required',
'pass' => 'required|min:6|max:15'
];
}
public function messages()
{
return [
'email.required' => 'Email is required',
'pass.required' => 'Password is required',
'pass.min' => 'Password must be atleast 6 digit long',
'pass.max' => 'Password must not be greater than 15 digits'
];
}
public function attributes()
{
return [
'pass' => 'user password',
'email' => 'email address',
];
}
3) с помощью метода валидатора, чтобы использовать валидатор, необходимо определить фасад, используя Illuminate \ Support \ Facades \ validator;пример: -
$validator = Validator::make($request->all(),[
'email' => 'required',
'pass' => 'required|min:6|max:15'
],
[
'email.required' => ':attribute is required',
'pass.required' => 'password is required',
'pass.min' => 'Password must be atleast 6 digits',
'pass.max' => 'Password must not be greater than 15 digits'
]
)->validate();
позволяет отображать сообщение об ошибке в блейде 1) в форме создания блейда и отображать сообщение об ошибке при сбое проверки, например
<form action="{{route('validation')}}" method="post">
@csrf
<div class="form-group">
<label>Email</label>
@error('email')
<p style="color:red">{{$message}}</p>
@enderror
<input type="email" name="email" value="{{old('email')}}" class="form-control">
</div>
<div class="form-group">
<label>password</label>
@error('pass')
<p style="color:red">{{$message}}</p>
@enderror
<input type="password" name="pass" value="{{old('pass')}}" class="form-control">
</div>
<div class="form-group">
<input type="file" class="form-control" name="files">
</div>
<input type="submit" name="submit" value="submit" class="btn btn-primary">
</form>
2) в контроллере
$validator = Validator::make($request->all(),[
'email' => 'required',
'pass' => 'required|min:6|max:15'
],
[
'email.required' => ':attribute is required',
'pass.required' => 'password is required',
'pass.min' => 'Password must be atleast 6 digits',
'pass.max' => 'Password must not be greater than 15 digits'
]
)->validate();
Если проверка не удалась, она автоматически перенаправляется на блейд с ошибкой msg и печатает их.