Метод validate
Метод validate применяется к экземпляру класса Validator
и выполняет проверку переданных данных по указанным правилам.
Первым параметром метод принимает массив данных для проверки,
вторым - массив правил валидации, третьим - массив пользовательских
сообщений об ошибках, четвертым - массив пользовательских атрибутов.
В случае успешной валидации метод возвращает массив проверенных данных.
Синтаксис
<?php
$validator->validate($data, $rules, $messages, $attributes);
?>
Пример
Давайте проверим данные из запроса на наличие имени и email:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class UserController extends Controller
{
public function store(Request $request)
{
$data = $request->all();
$rules = [
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users',
];
$validator = Validator::make($data, $rules);
$res = $validator->validate();
return $res;
}
}
?>
Результат выполнения кода:
["name" => "John Doe", "email" => "john@example.com"]
Пример
Давайте используем пользовательские сообщения об ошибках:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class ArticleController extends Controller
{
public function update(Request $request)
{
$data = $request->all();
$rules = [
'title' => 'required|min:5',
'body' => 'required|min:10',
];
$messages = [
'title.required' => 'Title is required',
'title.min' => 'Title must be at least 5 characters',
'body.required' => 'Body is required',
'body.min' => 'Body must be at least 10 characters',
];
$validator = Validator::make($data, $rules);
$res = $validator->validate($data, $rules, $messages);
return $res;
}
}
?>
Результат выполнения кода при успешной проверке:
["title" => "Laravel Validation", "body" => "This is a detailed article about validation"]
Пример
Давайте проверим данные с пользовательскими названиями атрибутов:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
class ProfileController extends Controller
{
public function store(Request $request)
{
$data = $request->all();
$rules = [
'user_name' => 'required|string|max:50',
'user_email' => 'required|email',
];
$attributes = [
'user_name' => 'Username',
'user_email' => 'Email address',
];
$validator = Validator::make($data, $rules);
$res = $validator->validate($data, $rules, [], $attributes);
return $res;
}
}
?>
Результат выполнения кода:
["user_name" => "johndoe", "user_email" => "john@domain.com"]