Створення потужної валідації дат за допомогою правила Date у Laravel

2
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Вас цікавить, як спростити валідацію дат у ваших Laravel-додатках? У цій статті ми розглянемо нове потужне правило Date, яке дозволяє легко реалізувати складні вимоги до валідації в зрозумілому та легкому для підтримки форматі коду

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

Основна реалізація демонструє гнучкість правила:

use Illuminate\Validation\Rules\Date;
 
public function rules()
{
    return [
        'start_date' => [
            'required',
            new Date  // Основна валідація дати
        ],
        'end_date' => [
            'required',
            (new Date)
                ->after('start_date')
                ->before('2025-01-01')
        ],
        'birth_date' => [
            'required',
            (new Date)
                ->format('d/m/Y')
                ->beforeToday()
        ]
    ];
}

Ось як це правило спрощує валідацію в системі бронювання:

class ReservationController extends Controller
{
    public function store(Request $request)
    {
        $validated = $request->validate([
            'check_in' => [
                'required',
                (new Date)
                    ->format('Y-m-d')
                    ->afterOrEqual('today')
                    ->before(now()->addMonths(6))
            ],
            'check_out' => [
                'required',
                (new Date)
                    ->format('Y-m-d')
                    ->after('check_in')
            ],
            'special_request_by' => [
                'nullable',
                (new Date)
                    ->format('Y-m-d')
                    ->between('today', 'check_in')
            ],
            'guest_birthday' => [
                'nullable',
                (new Date)
                    ->format('m/d/Y')
                    ->beforeOrEqual('today')
                    ->after(now()->subYears(120))
            ]
        ]);
 
        Reservation::create($validated);
 
        return redirect()->route('reservations.confirmation');
    }
}

Ланцюгові методи правила Date створюють виразний синтаксис, завдяки якому навіть складні вимоги до валідації дат стають простими для розуміння та обслуговування

Популярні

Logomark Logotype

Простий пакет RabbitMQ для Laravel

Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!

Logomark Logotype

Nuxt 3 + Laravel Sanctum: Просте та надійне рішення для автентифікації вашого SPA та API

У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту

Logomark Logotype

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!