• Час читання ~1 хв
  • 20.01.2023

в 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 і існує назвати декілька.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297