Покращення числової валідації за допомогою інтерфейсу Fluent Rule у Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 04 квітня, 2025
Laravel пропонує більш виразний підхід до числової валідації за допомогою зручного інтерфейсу Rule::numeric. Досліджте, як зміна синтаксису робить ваш код читабельнішим і легшим для підтримки в цій статті!

У Laravel представлено більш виразний підхід до числової валідації за допомогою інтерфейсу Rule::numeric(). Цей синтаксис перетворює традиційні правила на основі рядків у методи, які можна з'єднувати, що покращує читабельність.

Завдяки нововведенню синтаксис став зрозумілішим для розробників:

// Раніше
$rules = [
    'price' => 'numeric|min:5|max:1000|decimal:2',
];
 
// Тепер
$rules = [
    'price' => Rule::numeric()
        ->min(5)
        ->max(1000)
        ->decimal(2),
];

Цей підхід особливо ефективний при реалізації всебічної валідації фінансових чи вимірювальних даних:

class ProductController extends Controller
{
    public function store(Request $request)
    {
        $validated = $request->validate([
            'name' => 'required|string|max:255',
            'price' => Rule::numeric()
                ->min(0.01)
                ->max(9999.99)
                ->decimal(2),
            'weight' => Rule::numeric()
                ->min(0)
                ->decimal(3)
                ->nullable(),
            'stock' => Rule::numeric()
                ->integer()
                ->min(0)
                ->nullable(),
            'discount_percent' => Rule::numeric()
                ->between(0, 100)
                ->decimal(1)
        ]);
 
        Product::create($validated);
 
        return redirect()->route('products.index')
            ->with('success', 'Товар успішно створено');
    }
}

Флюїдна валідація чисел створює більш зручні для підтримки визначення правил, при цьому забезпечуючи кращу підтримку IDE завдяки з'єднанню методів замість парсингу рядків