РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
600 of 1392 menu

Правило before

Правило before применяется к полям формы, содержащим дату, и проверяет, что указанное значение предшествует заданной дате или времени. Первым параметром передаётся строка с датой, которая может быть как конкретной датой, так и относительным выражением, например, 'today' или 'now'. Правило также может принимать в качестве параметра имя другого поля формы, тогда сравнение будет выполняться между значениями двух полей.

Синтаксис

<?php use Illuminate\Support\Facades\Validator; $validator = Validator::make($request->all(), [ 'field' => 'before:date', ]); ?>

Пример

Проверим, что дата события предшествует текущей дате:

<?php use Illuminate\Support\Facades\Validator; $data = ['event_date' => '2024-12-31']; $validator = Validator::make($data, [ 'event_date' => 'before:2025-01-01', ]); if ($validator->fails()) { $res = $validator->errors()->all(); } else { $res = 'Validation passed'; } echo $res; ?>

Результат выполнения кода:

"Validation passed"

Пример

Используем относительное время 'today' для проверки, что дата доставки не позднее текущего дня:

<?php use Illuminate\Support\Facades\Validator; $data = ['delivery_date' => '2026-09-06']; $validator = Validator::make($data, [ 'delivery_date' => 'before:today', ]); if ($validator->fails()) { $res = $validator->errors()->all(); } else { $res = 'Validation passed'; } echo $res; ?>

Результат выполнения кода:

"Validation passed"

Пример

Сравним два поля формы: дата начала должна быть раньше даты окончания:

<?php use Illuminate\Support\Facades\Validator; $data = [ 'start_date' => '2025-01-01', 'end_date' => '2025-12-31', ]; $validator = Validator::make($data, [ 'start_date' => 'required|date', 'end_date' => 'required|date|after:start_date', ]); if ($validator->fails()) { $res = $validator->errors()->all(); } else { $res = 'Validation passed'; } echo $res; ?>

Результат выполнения кода:

"Validation passed"

Пример

Проверим дату рождения, которая должна быть раньше указанного предела:

<?php use Illuminate\Support\Facades\Validator; $data = ['birthday' => '1990-05-15']; $validator = Validator::make($data, [ 'birthday' => 'before:2005-01-01', ]); if ($validator->fails()) { $res = $validator->errors()->all(); } else { $res = 'Validation passed'; } echo $res; ?>

Результат выполнения кода:

"Validation passed"

Пример

Валидация с использованием правила before внутри класса FormRequest:

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class EventRequest extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'event_date' => 'required|date|before:tomorrow', 'event_time' => 'required|date_format:H:i', ]; } public function messages() { return [ 'event_date.before' => 'The event date must be before tomorrow.', ]; } } ?>

Смотрите также

  • правило after,
    которое проверяет, что дата следует за указанным значением
  • правило after_or_equal,
    которое проверяет, что дата не раньше указанной
  • правило before_or_equal,
    которое проверяет, что дата не позже указанной
  • правило date,
    которое проверяет, что значение является корректной датой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить