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

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

Метод getData класса Form возвращает данные, которые в данный момент привязаны к форме. Чаще всего метод вызывается после того, как форма была отправлена и обработана через handleRequest. Возвращаемое значение зависит от типа формы: для обычной формы это объект сущности или массив, для составной формы - объект с вложенными данными. Параметров метод не принимает.

Синтаксис

$form->getData()

Пример

Давайте создадим простую форму, отправим её и получим данные через метод getData:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function form(Request $request): Response { $form = $this->createFormBuilder() ->add('title', TextType::class) ->add('save', SubmitType::class) ->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $res = $form->getData(); return new Response($res['title']); } return $this->render('article/form.html.twig', [ 'form' => $form, ]); } } ?>

Результат выполнения кода для отправленной формы со значением 'abcde' в поле title:

abcde

Пример

Давайте рассмотрим форму, привязанную к сущности. Метод getData вернёт объект этой сущности:

<?php namespace App\Controller; use App\Entity\Article; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\IntegerType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/edit', name: 'article_edit')] public function edit(Request $request): Response { $article = new Article(); $article->setTitle('hello'); $article->setViews(1); $form = $this->createFormBuilder($article) ->add('title', TextType::class) ->add('views', IntegerType::class) ->add('save', SubmitType::class) ->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $res = $form->getData(); return new Response($res->getTitle()); } return $this->render('article/edit.html.twig', [ 'form' => $form, ]); } } ?>

Результат выполнения кода для отправленной формы со значением 'article' в поле title:

article

Пример

Давайте посмотрим, что вернёт метод getData для формы с несколькими полями:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\IntegerType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/create', name: 'article_create')] public function create(Request $request): Response { $form = $this->createFormBuilder() ->add('title', TextType::class) ->add('views', IntegerType::class) ->add('published', CheckboxType::class) ->add('save', SubmitType::class) ->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $res = $form->getData(); return new Response(json_encode($res)); } return $this->render('article/create.html.twig', [ 'form' => $form, ]); } } ?>

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

{"title":"abcde","views":5,"published":true}

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

  • класс Form,
    который представляет форму в Symfony
  • метод handleRequest,
    который обрабатывает отправленную форму
  • метод isValid,
    который проверяет валидность формы
  • метод setData,
    который устанавливает данные формы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить