Правило MacAddress
Правило MacAddress относится к секции
валидации форм и проверяет, что переданное
значение является MAC-адресом. MAC-адрес
состоит из шести групп по два шестнадцатеричных
символа, разделённых двоеточиями, дефисами
или записанных слитно. Правило можно применять
как к отдельному полю формы, так и к свойству
сущности через атрибут.
Синтаксис
new MacAddress()
Пример
Давайте создадим форму с полем mac и навесим
на него правило MacAddress. Значение поля
должно быть корректным MAC-адресом:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentFormExtensionCoreTypeTextType;
use SymfonyComponentFormFormBuilderInterface;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
use SymfonyComponentValidatorConstraintsMacAddress;
class ArticleController extends AbstractController
{
#[Route('/article/mac', name: 'article_mac')]
public function mac(Request $request): Response
{
$form = $this->createFormBuilder()
->add('mac', TextType::class, [
'constraints' => [
new MacAddress(),
],
])
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
return new Response('valid mac');
}
return $this->render('article/mac.html.twig', [
'form' => $form->createView(),
]);
}
}
?>
Если ввести значение '00:1A:2B:3C:4D:5E',
форма пройдёт валидацию и вернёт результат:
"valid mac"
Пример
Давайте проверим неверное значение. Например,
адрес '00:1A:2B:3C:4D' содержит только пять
групп, поэтому правило выдаст ошибку:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentFormExtensionCoreTypeTextType;
use SymfonyComponentFormFormBuilderInterface;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
use SymfonyComponentValidatorConstraintsMacAddress;
class ArticleController extends AbstractController
{
#[Route('/article/mac-invalid', name: 'article_mac_invalid')]
public function macInvalid(Request $request): Response
{
$form = $this->createFormBuilder()
->add('mac', TextType::class, [
'constraints' => [
new MacAddress(),
],
])
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
return new Response('valid mac');
}
return $this->render('article/mac.html.twig', [
'form' => $form->createView(),
]);
}
}
?>
Результат выполнения кода при неверном значении:
"This value is not a valid MAC address."