Метод errors
Метод errors применяется к объекту валидатора
и возвращает коллекцию сообщений об ошибках.
Он доступен после выполнения валидации и позволяет
получить все ошибки в виде объекта MessageBag.
Этот метод удобно использовать для вывода списка
ошибок пользователю или для проверки наличия
ошибок в конкретном поле.
Синтаксис
<?php
$validator->errors();
?>
Пример
Давайте создадим валидатор для проверки данных и получим все ошибки:
<?php
use Illuminate\Support\Facades\Validator;
$data = [
'name' => '',
'email' => 'invalid-email',
'age' => 15,
];
$rules = [
'name' => 'required|string|min:3',
'email' => 'required|email',
'age' => 'required|integer|min:18',
];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
$errors = $validator->errors();
foreach ($errors->all() as $error) {
echo $error . "\n";
}
}
?>
Результат выполнения кода:
"The name field is required."
"The email must be a valid email address."
"The age must be at least 18."
Пример
Давайте получим ошибки для конкретного поля
с помощью метода get:
<?php
use Illuminate\Support\Facades\Validator;
$data = [
'username' => 'a',
'password' => '123',
];
$rules = [
'username' => 'required|string|min:5',
'password' => 'required|string|min:8',
];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
$errors = $validator->errors();
// Получаем ошибки для поля username
$usernameErrors = $errors->get('username');
foreach ($usernameErrors as $error) {
echo $error . "\n";
}
}
?>
Результат выполнения кода:
"The username must be at least 5 characters."
Пример
Давайте проверим наличие ошибок в конкретном поле
с помощью метода has:
<?php
use Illuminate\Support\Facades\Validator;
$data = [
'email' => 'test@example.com',
'phone' => '',
];
$rules = [
'email' => 'required|email',
'phone' => 'required|string|min:10',
];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
$errors = $validator->errors();
if ($errors->has('phone')) {
echo "Phone field has errors\n";
}
if (!$errors->has('email')) {
echo "Email field is valid\n";
}
}
?>
Результат выполнения кода:
"Phone field has errors"
"Email field is valid"
Пример
Давайте получим первую ошибку для поля
с помощью метода first:
<?php
use Illuminate\Support\Facades\Validator;
$data = [
'name' => '',
'description' => 'Short',
];
$rules = [
'name' => 'required|string|max:50',
'description' => 'required|string|min:10',
];
$validator = Validator::make($data, $rules);
if ($validator->fails()) {
$errors = $validator->errors();
$firstError = $errors->first('description');
echo $firstError . "\n";
}
?>
Результат выполнения кода:
"The description must be at least 10 characters."