Рекомендований спосіб написання логіки перевірки та авторизації - це розміщення цієї логіки в окремих класах запитів. Таким чином ваш код контролера залишатиметься чистим.
Ви можете створити клас запиту, виконавши 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([...])
. Буде застосовано виняток, якщо дані не проходять перевірку.