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

Метод getParent

Метод getParent принадлежит классу Form и возвращает родительскую форму для текущей формы. Если форма является корневой, метод вернёт null. Параметров метод не принимает. Метод удобен при работе с вложенными формами, когда нужно получить доступ к родительскому элементу и его данным из дочерней формы.

Синтаксис

public function getParent(): ?FormInterface

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; class FormController extends AbstractController { public function index(): Response { $parent = $this->createFormBuilder() ->add('name', TextType::class) ->add('child', FormType::class) ->add('save', SubmitType::class) ->getForm(); $child = $parent->get('child'); $res = $child->getParent(); echo $res->getName(); return new Response(); } } ?>

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

"form"

Пример

Давайте проверим, что для корневой формы метод возвращает null:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; class FormController extends AbstractController { public function index(): Response { $form = $this->createFormBuilder() ->add('name', TextType::class) ->add('save', SubmitType::class) ->getForm(); $res = $form->getParent(); var_dump($res); return new Response(); } } ?>

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

null

Пример

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

<?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\FormType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; class FormController extends AbstractController { public function index(Request $request): Response { $parent = $this->createFormBuilder() ->add('name', TextType::class) ->add('child', FormType::class) ->add('save', SubmitType::class) ->getForm(); $parent->handleRequest($request); $child = $parent->get('child'); $root = $child->getParent(); if ($root->isSubmitted() && $root->isValid()) { $data = $root->getData(); echo $data['name']; } return new Response(); } } ?>

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

"abcde"

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

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