Рекомендуемый способ написания логики проверки и авторизации - поместить эту логику в отдельные классы запросов. Таким образом, код вашего контроллера останется чистым.
Вы можете создать класс запроса, выполнив php artisan make:request SomeRequest
.
В каждом rules()
методе класса запроса определите свои правила проверки:
//SomeRequest.php
public function rules()
{
return [
"name" => [
'required',
'array', // input must be an array
'min:3' // there must be three members in the array
],
"name.*" => [
'required',
'string', // input must be of type string
'distinct', // members of the array must be unique
'min:3' // each string must have min 3 chars
]
];
}
В вашем контроллере напишите функцию маршрута следующим образом:
// SomeController.php
public function store(SomeRequest $request)
{
// Request is already validated before reaching this point.
// Your controller logic goes here.
}
public function update(SomeRequest $request)
{
// It isn't uncommon for the same validation to be required
// in multiple places in the same controller. A request class
// can be beneficial in this way.
}
Каждый класс запроса поставляется с перехватчиками / методами до и после проверки, которые можно настроить на основе бизнес-логики и особых случаев, чтобы изменить нормальное поведение класса запроса.
Вы можете создать родительские классы запросов для аналогичных типов запросов (например, web
и api
) запросов, а затем инкапсулировать некоторую общую логику запросов в эти родительские классы.
$request->validate([...])
. Если данные не прошли проверку, возникнет исключение.