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

Метод reverseTransform класса CallbackTransformer

Метод reverseTransform класса CallbackTransformer выполняет обратное преобразование значения после валидации. Если метод transform готовит данные для проверки, то reverseTransform возвращает данные в исходный вид. Метод принимает один параметр - значение, полученное после валидации, и возвращает преобразованное значение.

Синтаксис

public function reverseTransform(mixed $value): mixed

Пример

Давайте создадим трансформер, который при прямом преобразовании превращает строку в массив, а при обратном - собирает массив обратно в строку:

<?php namespace AppValidator; use SymfonyComponentValidatorCallbackTransformer; class CallbackTransformer { public function transform(mixed $value): mixed { return explode(',', $value); } public function reverseTransform(mixed $value): mixed { return implode(',', $value); } } ?>

Результат выполнения метода reverseTransform для массива ['a', 'b', 'c']:

"a,b,c"

Пример

Давайте применим трансформер к полю сущности через ограничение Callback:

<?php namespace AppEntity; use AppValidatorCallbackTransformer; use SymfonyComponentValidatorConstraints as Assert; class Article { #[AssertCallback( callback: [CallbackTransformer::class, 'transform'] )] public string $title = ''; public function reverseTitle(mixed $value): mixed { return (new CallbackTransformer())->reverseTransform($value); } } ?>

Результат выполнения метода reverseTransform для массива ['article', 'user', 'hello']:

"article,user,hello"

Пример

Давайте проверим работу трансформера в контроллере с помощью сервиса ValidatorInterface:

<?php namespace AppController; use AppValidatorCallbackTransformer; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; use SymfonyComponentValidatorValidatorValidatorInterface; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(ValidatorInterface $validator): Response { $transformer = new CallbackTransformer(); $value = $transformer->reverseTransform(['abcde']); return new Response($value); } } ?>

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

abcde

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

  • класс CallbackTransformer,
    который выполняет преобразование значений при валидации
  • метод transform,
    который выполняет прямое преобразование значения
  • класс Validator,
    который выполняет валидацию объектов
  • метод validate,
    который запускает проверку объекта
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить