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 створюють виразний синтаксис, завдяки якому навіть складні вимоги до валідації дат стають простими для розуміння та обслуговування