В Ларавель 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 Существует
назвать несколько.