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

Правило before_or_equal

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

Синтаксис

Базовый синтаксис правила:

<?php 'field' => 'before_or_equal:date' ?>

Где 'field' - имя проверяемого поля, а 'date' - строка с датой, которая используется для сравнения. Дата должна быть в формате, поддерживаемом функцией strtotime PHP, либо ключевым словом today.

Пример с конкретной датой

Давайте проверим, что дата события не позже 31 декабря 2025 года:

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; $request = new Request([ 'event_date' => '2025-12-30' ]); $validator = Validator::make($request->all(), [ 'event_date' => 'required|date|before_or_equal:2025-12-31' ]); if ($validator->passes()) { echo "Validation passed"; } else { $res = $validator->errors()->all(); echo $res[0]; } ?>

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

"Validation passed"

Пример с полем формы

Проверим, что дата начала не позже даты окончания:

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; $request = new Request([ 'start_date' => '2025-12-30', 'end_date' => '2025-12-31' ]); $validator = Validator::make($request->all(), [ 'start_date' => 'required|date|before_or_equal:end_date' ]); if ($validator->passes()) { echo "Validation passed"; } else { $res = $validator->errors()->all(); echo $res[0]; } ?>

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

"Validation passed"

Пример с текущей датой

Проверим, что дата регистрации не позже текущего дня:

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; $request = new Request([ 'registration_date' => date('Y-m-d') ]); $validator = Validator::make($request->all(), [ 'registration_date' => 'required|date|before_or_equal:today' ]); if ($validator->passes()) { echo "Validation passed"; } else { $res = $validator->errors()->all(); echo $res[0]; } ?>

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

"Validation passed"

Пример с использованием Form Request

Создадим класс запроса для валидации даты события:

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class EventRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return [ 'title' => 'required|string|max:255', 'event_date' => 'required|date|before_or_equal:end_date', 'end_date' => 'required|date', ]; } public function messages(): array { return [ 'event_date.before_or_equal' => 'The event date must be before or equal to the end date.', ]; } } ?>

Теперь используем этот запрос в контроллере:

<?php namespace App\Http\Controllers; use App\Http\Requests\EventRequest; class EventController extends Controller { public function store(EventRequest $request) { $validated = $request->validated(); echo "Event created successfully"; return $validated; } } ?>

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

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