в Laravel 9.41, тепер у нас є кілька зручних статичних конструкторів, доданих для таких речей, як правила переліку, файли та файли зображень.
Ви можете створювати ці об’єкти правил безпосередньо, але мені подобається зручність знати, що я маю доступ до них через статичні конструктори на головному правило
об'єкт:
use Illuminate\Validation\Rules\Enum;
use Illuminate\Validation\Rules\File;
use Illuminate\Validation\Rules\ImageFile;
// Before
(new File())->default();
(new ImageFile())->dimensions(
Rule::dimensions()->maxWidth(1000)->maxHeight(500)
);
new Enum(PostStatus::class);
// As of 9.41
Rule::file()->default()
Rule::imageFile()->dimensions(
Rule::dimensions()->maxWidth(1000)->maxHeight(500)
);
Rule::enum(PostStatus::class);
Ось більш повний приклад, щоб побачити, як виглядають правила перевірки з використанням main правило
статичні методи класу:
use Illuminate\Validation\Rule;
use Illuminate\Validation\Rules\Enum;
use Illuminate\Validation\Rules\Unique;
// Before
$request->validate([
'status' => [
'required',
new Enum(PostStatus::class)
],
'slug' => [
'required',
new Unique(Post::class);
],
]);
// After
$request->validate([
'status' => [
'required',
// Newly added in 9.41
Rule::enum(PostStatus::class)
],
'slug' => [
'required',
// Note: unique has been available for a while
Rule::unique(Post::class),
],
]);
Деякі об’єкти правил не мають прикладів у документації, і я вважаю, що їх легше знайти через main правило
методи класу. Якщо ви подивіться на класи правил під Освітлення\Перевірка\Правила
простір імен, на момент написання він виглядає так:
- DatabaseRule
- Розміри
- Enum
- ExcludeIf
- існує
- Файл
- ImageФайл
- в
- плавання
- Пароль
- ЗабороненоЯкщо
- RequiredIf
- Унікальний
Я пропоную вам зануритися в джерело, щоб дізнатися більше про ці корисні об’єкти та як вони працюють. The перевірка документів є корисні приклади того, як використовувати деякі з цих конструкторів правил, наприклад File
і існує
назвати декілька.