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

Метод getViewData класса Form

Метод getViewData класса Form возвращает данные формы в нормализованном для отображения виде. В отличие от метода getData, который возвращает исходные данные модели, getViewData приводит их к формату, пригодному для вывода в шаблоне - например, объект DateTime превращается в строку, а сущность - в её идентификатор или строковое представление.

Метод не принимает параметров и возвращает значение типа mixed - то, что будет доступно в Twig через переменную form.vars.value. Метод удобно использовать, когда нужно получить именно отображаемое значение поля, а не его внутреннее представление.

Синтаксис

$form->getViewData();

Пример

Давайте создадим форму с текстовым полем и получим отображаемое значение через метод getViewData:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class FormController extends AbstractController { #[Route('/form', name: 'form_index')] public function index(): Response { $form = $this->createFormBuilder(['name' => 'abcde']) ->add('name', TextType::class) ->add('save', SubmitType::class) ->getForm(); $viewData = $form->get('name')->getViewData(); return new Response(var_export($viewData, true)); } } ?>

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

'abcde'

Пример

Давайте посмотрим, как метод getViewData преобразует объект DateTime в строку, пригодную для вывода:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Form\Extension\Core\Type\DateType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class FormController extends AbstractController { #[Route('/form-date', name: 'form_date')] public function date(): Response { $form = $this->createFormBuilder([ 'createdAt' => new \DateTime('2024-01-15'), ]) ->add('createdAt', DateType::class, [ 'widget' => 'single_text', ]) ->add('save', SubmitType::class) ->getForm(); $viewData = $form->get('createdAt')->getViewData(); return new Response(var_export($viewData, true)); } } ?>

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

'2024-01-15'

Пример

Давайте выведем значение getViewData прямо в Twig-шаблоне через переменную form.vars.value:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class FormController extends AbstractController { #[Route('/form-twig', name: 'form_twig')] public function twig(): Response { $form = $this->createFormBuilder(['name' => 'hello']) ->add('name', TextType::class) ->add('save', SubmitType::class) ->getForm(); return $this->render('form/index.html.twig', [ 'form' => $form, ]); } } ?>

Теперь выведем отображаемое значение поля в шаблоне:

<p>{{ form.name.vars.value }}</p>

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

<p>hello</p>

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

  • метод getData,
    который возвращает исходные данные формы
  • метод getNormData,
    который возвращает нормализованные данные формы
  • метод createView,
    который создаёт представление формы для шаблона
  • класс Form,
    который представляет форму в Symfony
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить