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

Правило timezone

Правило timezone применяется к полям формы или запросам валидации и проверяет, что переданное значение является допустимым идентификатором временной зоны из списка, поддерживаемого PHP. Это может быть название зоны типа 'Europe/Moscow', 'America/New_York' или аббревиатура типа 'UTC'. Правило не принимает дополнительных параметров.

Синтаксис

<?php 'timezone' => 'required|timezone' ?>

Пример использования в контроллере

Давайте проверим, что переданное поле 'timezone' содержит корректную временную зону:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; class UserController extends Controller { public function store(Request $request) { $validator = Validator::make($request->all(), [ 'timezone' => 'required|timezone' ]); if ($validator->fails()) { return response()->json($validator->errors(), 422); } return response()->json(['message' => 'Valid timezone']); } } ?>

Пример работы с допустимыми значениями

Рассмотрим валидацию поля с различными корректными идентификаторами временных зон:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; class TimezoneController extends Controller { public function validate(Request $request) { $rules = [ 'timezone' => 'required|timezone' ]; $data = [ 'Europe/Moscow', 'America/New_York', 'UTC' ]; foreach ($data as $tz) { $validator = Validator::make(['timezone' => $tz], $rules); if ($validator->passes()) { echo $tz . ' is valid'; } } } } ?>

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

"Europe/Moscow is valid" "America/New_York is valid" "UTC is valid"

Пример работы с некорректными значениями

Проверим, что значения, не являющиеся временными зонами, отвергаются валидацией:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; class TimezoneController extends Controller { public function invalid(Request $request) { $rules = [ 'timezone' => 'required|timezone' ]; $data = [ 'Invalid/Timezone', '12345', 'UTC+10' ]; foreach ($data as $tz) { $validator = Validator::make(['timezone' => $tz], $rules); if ($validator->fails()) { echo $tz . ' is invalid'; } } } } ?>

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

"Invalid/Timezone is invalid" "12345 is invalid" "UTC+10 is invalid"

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

Создадим отдельный класс запроса для проверки временной зоны пользователя:

<?php namespace AppHttpRequests; use IlluminateFoundationHttpFormRequest; class UserTimezoneRequest extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'timezone' => 'required|timezone' ]; } public function messages() { return [ 'timezone.required' => 'The timezone field is required.', 'timezone.timezone' => 'The timezone must be a valid timezone identifier.' ]; } } ?>

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

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