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

Правило Currency

Правило Currency относится к секции form и применяется для валидации полей, в которых пользователь вводит код валюты. Правило проверяет, что значение является строкой из трёх букв и входит в список допустимых кодов ISO 4217, например 'USD', 'EUR', 'RUB'. По умолчанию допускаются любые валюты, но можно ограничить список через опцию choices. Правило вешается на свойство сущности через атрибут #[Assert\Currency].

Синтаксис

#[Assert\Currency( message: 'The value is not a valid currency.' )]

Пример

Давайте создадим сущность с полем currency и повесим на него правило Currency:

<?php namespace App\Entity; use Symfony\Component\Validator\Constraints as Assert; class Product { #[Assert\Currency] private string $currency; public function setCurrency(string $currency): void { $this->currency = $currency; } public function getCurrency(): string { return $this->currency; } } ?>

Пример

Давайте проверим значение 'USD' через валидатор:

<?php namespace App\Controller; use App\Entity\Product; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Validator\Validator\ValidatorInterface; class ProductController extends AbstractController { #[Route('/product', name: 'product_check')] public function check(ValidatorInterface $validator): Response { $product = new Product(); $product->setCurrency('USD'); $errors = $validator->validate($product); if (count($errors) === 0) { return new Response('valid'); } return new Response((string) $errors); } } ?>

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

"valid"

Пример

Давайте проверим некорректное значение 'abcde':

<?php namespace App\Controller; use App\Entity\Product; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Validator\Validator\ValidatorInterface; class ProductController extends AbstractController { #[Route('/product-invalid', name: 'product_invalid')] public function invalid(ValidatorInterface $validator): Response { $product = new Product(); $product->setCurrency('abcde'); $errors = $validator->validate($product); return new Response((string) $errors); } } ?>

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

"Object(App\Entity\Product).currency: This value is not a valid currency."

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

  • правило Currency,
    которое проверяет код валюты
  • правило Regex,
    которое проверяет строку по регулярному выражению
  • правило Length,
    которое проверяет длину строки
  • правило Choice,
    которое проверяет, что значение входит в список
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить