Laravel Schema Rules — це пакет, який автоматично генерує базові правила валідації Laravel на основі схеми таблиці бази даних. Ви можете використовувати цей пакет як відправну точку для швидкого створення шаблонних правил та оптимізації за потреби.
Враховуючи наступну схему (з README) для вашої таблиці:Ви можете виконати команду Artisan schema:generate-rules
для створення правил перевірки:
Schema::create('persons', function (Blueprint $table) {
$table->id();
$table->string('first_name', 100);
$table->string('last_name', 100);
$table->string('email');
$table->foreignId('address_id')->constrained();
$table->text('bio')->nullable();
$table->enum('gender', ['m', 'f', 'd']);
$table->date('birth');
$table->year('graduated');
$table->float('body_size');
$table->unsignedTinyInteger('children_count')->nullable();
$table->integer('account_balance');
$table->unsignedInteger('net_income');
$table->boolean('send_newsletter')->nullable();
});
$ php artisan schema:generate-rules persons
[
'first_name' => ['required', 'string', 'min:1', 'max:100'],
'last_name' => ['required', 'string', 'min:1', 'max:100'],
'email' => ['required', 'string', 'min:1', 'max:255'],
'address_id' => ['required', 'exists:addresses,id'],
'bio' => ['nullable', 'string', 'min:1'],
'gender' => ['required', 'string', 'in:m,f,d'],
'birth' => ['required', 'date'],
'graduated' => ['required', 'integer', 'min:1901', 'max:2155'],
'body_size' => ['required', 'numeric'],
'children_count' => ['nullable', 'integer', 'min:0', 'max:255'],
'account_balance' => ['required', 'integer', 'min:-2147483648', 'max:2147483647'],
'net_income' => ['required', 'integer', 'min:0', 'max:4294967295'],
'send_newsletter' => ['nullable', 'boolean']
]
Ви також можете орієнтуватися на певні стовпці, пропускати стовпці та навіть генерувати клас запиту форми.
Існує також онлайн-версія цього пакету, яку ви можете використовувати для експериментів з цим пакунком або використовувати його для ручного взяття схеми та перетворення її на масив правил валідації:
Відвідайте validationforlaravel.com, щоб випробувати його!
Ви можете дізнатися більше про цей пакунок, отримати повні інструкції зі встановлення та переглянути вихідний код на GitHub.