Функция validator
Функция validator используется для создания объекта валидатора
для проверки данных. Первым параметром передаются данные для проверки,
вторым - правила валидации, третьим - сообщения об ошибках,
четвёртым - пользовательские названия атрибутов. Возвращает экземпляр
класса IlluminateValidationValidator.
Синтаксис
<?php
validator($data, $rules, $messages, $attributes);
?>
Пример
Давайте проверим данные формы регистрации на наличие всех обязательных полей:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppHttpControllersController;
class UserController extends Controller
{
public function register(Request $request)
{
$data = $request->all();
$rules = [
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users',
'password' => 'required|min:8|confirmed',
];
$validator = validator($data, $rules);
if ($validator->fails()) {
$res = $validator->errors()->all();
echo "Validation errors: ";
print_r($res);
return;
}
echo "User registered successfully!";
}
}
?>
Результат выполнения кода при передаче неверных данных:
"Validation errors: Array ( [0] => The name field is required. [1] => The email field is required. [2] => The password field is required. )"
Пример
Давайте добавим пользовательские сообщения для правил валидации:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppHttpControllersController;
class ProfileController extends Controller
{
public function update(Request $request)
{
$data = [
'age' => $request->input('age'),
'email' => $request->input('email'),
];
$rules = [
'age' => 'required|integer|min:18|max:100',
'email' => 'required|email',
];
$messages = [
'age.required' => 'Age is required.',
'age.min' => 'Age must be at least 18 years.',
'age.max' => 'Age must not exceed 100 years.',
'email.required' => 'Email address is required.',
'email.email' => 'Please provide a valid email address.',
];
$validator = validator($data, $rules, $messages);
if ($validator->fails()) {
$res = $validator->errors()->first();
echo "Error: " . $res;
return;
}
echo "Profile updated successfully!";
}
}
?>
Результат выполнения кода при передаче возраста меньше допустимого:
"Error: Age must be at least 18 years."
Пример
Давайте используем пользовательские названия атрибутов для улучшения сообщений:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use AppHttpControllersController;
class ProductController extends Controller
{
public function store(Request $request)
{
$data = [
'product_name' => $request->input('product_name'),
'product_price' => $request->input('product_price'),
'product_description' => $request->input('product_description'),
];
$rules = [
'product_name' => 'required|string|max:50',
'product_price' => 'required|numeric|min:0.01',
'product_description' => 'required|string|min:10',
];
$attributes = [
'product_name' => 'Product Name',
'product_price' => 'Product Price',
'product_description' => 'Product Description',
];
$validator = validator($data, $rules, [], $attributes);
if ($validator->fails()) {
$res = $validator->errors()->all();
echo "Validation failed: ";
print_r($res);
return;
}
echo "Product created successfully!";
}
}
?>
Результат выполнения кода при передаче пустого описания:
"Validation failed: Array ( [0] => The Product Description field is required. )"