• Время чтения ~1 мин
  • 20.01.2023

В Ларавель 9.41, we now have a few convenient static constructors added for things like enum rules, files, и image files.

Вы можете создавать эти объекты правил напрямую, но мне нравится удобство знания того, что у меня есть доступ к ним через статические конструкторы на главной странице. Правило объект:

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);

Вот более полный пример, чтобы увидеть, как выглядят правила проверки с использованием основного Правило статические методы класса:

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 Правило методы класса. Если вы посмотрите на классы правил под Освещение\Валидация\Правила пространство имен, на момент написания оно выглядит следующим образом:

  • База данныхПравило
  • Размеры
  • перечисление
  • Исключитьесли
  • Существует
  • Файл
  • Файл изображения
  • В
  • плавание
  • Пароль
  • Запрещено, если
  • Требуется, если
  • Уникальный

Я бы посоветовал вам погрузиться в исходный код, чтобы узнать больше об этих полезных объектах и ​​о том, как они работают. подтверждающие документы есть полезные примеры того, как использовать некоторые из этих построителей правил, такие как Файл and Существует назвать несколько.

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