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

Правило active_url

Правило active_url применяется к валидации строк в Laravel и проверяет, что переданное значение является активным URL-адресом. Проверка осуществляется через функцию PHP checkdnsrr, которая проверяет наличие DNS-записей для домена. Если переданное значение не является корректным URL или домен не имеет DNS-записей, валидация не проходит. Правило не принимает дополнительных параметров.

Синтаксис

<?php use Illuminate\Support\Facades\Validator; $validator = Validator::make($data, [ 'field' => 'active_url' ]); ?>

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

Давайте создадим валидатор для проверки поля 'website' на активный URL:

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

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

"Validation passed"

Пример с комбинацией правил

Часто правило active_url используется вместе с другими правилами, например, с required и string:

<?php use Illuminate\Support\Facades\Validator; $data = [ 'company_website' => 'https://google.com', 'personal_website' => '' ]; $validator = Validator::make($data, [ 'company_website' => 'required|string|active_url', 'personal_website' => 'nullable|active_url' ]); if ($validator->passes()) { echo "All websites are valid"; } else { print_r($validator->errors()->all()); } ?>

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

"All websites are valid"

Использование в Form Request

Рассмотрим использование правила в отдельном классе FormRequest:

<?php namespace AppHttpRequests; use IlluminateFoundationHttpFormRequest; class WebsiteRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return [ 'url' => 'required|active_url', 'backup_url' => 'nullable|active_url' ]; } public function messages(): array { return [ 'url.active_url' => 'The URL must be an active website', 'url.required' => 'The URL field is required' ]; } } ?>

Пример с коллекцией URL-адресов

Проверим массив URL-адресов на активность с использованием правила active_url:

<?php use Illuminate\Support\Facades\Validator; $data = [ 'urls' => ['https://laravel.com', 'https://google.com', 'https://invalid.domain'] ]; $validator = Validator::make($data, [ 'urls.*' => 'active_url' ]); if ($validator->fails()) { $errors = $validator->errors()->all(); foreach ($errors as $error) { echo $error . "\n"; } } else { echo "All URLs are active"; } ?>

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

"The urls.2 must be an active URL"

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

  • правило url,
    которое проверяет корректность формата URL
  • правило email,
    которое проверяет корректность email-адреса
  • правило required,
    которое делает поле обязательным для заполнения
  • правило nullable,
    которое позволяет полю быть пустым
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить