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

Правило Hostname

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

Правило проверяет, что строка соответствует формату доменного имени: содержит допустимые символы, корректные метки, разделённые точками, и не превышает допустимую длину.

Синтаксис

new Hostname(message: 'error message')

Пример

Давайте создадим форму с полем host и повесим на него правило Hostname:

<?php namespace AppForm; use SymfonyComponentFormAbstractType; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormFormBuilderInterface; use SymfonyComponentOptionsResolverOptionsResolver; use SymfonyComponentValidatorConstraintsHostname; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('host', TextType::class, [ 'constraints' => [ new Hostname( message: 'Invalid hostname', ), ], ]); } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ 'data_class' => null, ]); } } ?>

Пример

Давайте создадим контроллер, который принимает значение поля host и проверяет его валидность:

<?php namespace AppController; use AppFormArticleType; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $form = $this->createForm(ArticleType::class); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $data = $form->getData(); return new Response('valid hostname: ' . $data['host']); } return $this->render('article/index.html.twig', [ 'form' => $form->createView(), ]); } } ?>

Пример

Давайте создадим Twig-шаблон для вывода формы:

{{ form_start(form) }} {{ form_row(form.host) }} <button type="submit">Send</button> {{ form_end(form) }}

При отправке формы с корректным именем хоста, например 'example.com', результат выполнения кода:

"valid hostname: example.com"

При отправке формы с некорректным именем хоста, например '-invalid-', форма не пройдёт валидацию и пользователь увидит сообщение 'Invalid hostname'.

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

  • правило Url,
    которое проверяет корректность URL-адреса
  • правило Ip,
    которое проверяет корректность IP-адреса
  • правило Regex,
    которое проверяет строку по регулярному выражению
  • класс Form,
    который представляет форму в Symfony
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить