Правило Bic
Правило Bic относится к ограничениям валидации Symfony
и вешается на поле формы или свойство сущности. Оно проверяет,
что переданное значение является корректным BIC-кодом банка
(Bank Identifier Code). BIC состоит из 8 или 11 символов:
четырёх букв кода банка, двух букв кода страны, двух
буквенно-цифровых символов кода локации и, опционально,
трёх буквенно-цифровых символов кода филиала. Правило
можно использовать как в виде атрибута, так и в виде
элемента массива опций поля формы.
Синтаксис
#[Bic(
message: 'text',
groups: ['group']
)]
Пример
Давайте создадим форму с полем bic и повесим на него
правило Bic:
<?php
namespace App\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\Bic;
class ArticleType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder->add('bic', TextType::class, [
'constraints' => [
new Bic(),
],
]);
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => null,
]);
}
}
?>
Пример
Давайте проверим значение 'DEUTDEFF' через валидатор:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Validator\Validation;
use Symfony\Component\Validator\Constraints\Bic;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$validator = Validation::createValidator();
$res = $validator->validate('DEUTDEFF', [
new Bic(),
]);
return new Response((string) count($res));
}
}
?>
Результат выполнения кода:
"0"
Пример
Давайте проверим некорректное значение 'abcde':
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Validator\Validation;
use Symfony\Component\Validator\Constraints\Bic;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$validator = Validation::createValidator();
$res = $validator->validate('abcde', [
new Bic(),
]);
return new Response($res[0]->getMessage());
}
}
?>
Результат выполнения кода:
"This value is not a valid Business Identifier Code (BIC)."
Пример
Давайте зададим собственное сообщение об ошибке через опцию
message:
<?php
namespace App\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\Bic;
class ArticleType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder->add('bic', TextType::class, [
'constraints' => [
new Bic(
message: 'Invalid BIC code.',
),
],
]);
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => null,
]);
}
}
?>
Смотрите также
-
правило
Iban,
которое проверяет корректность IBAN -
правило
CardScheme,
которое проверяет номер банковской карты -
правило
Luhn,
которое проверяет номер по алгоритму Луна -
класс
Form,
который представляет форму в Symfony