Функция form_parent
Функция form_parent возвращает объект родительской формы
относительно переданной формы. Это бывает нужно, когда форма
вложена в другую форму или когда необходимо получить доступ
к данным родителя из дочернего шаблона. Функция принимает
один параметр - форму, для которой нужно найти родителя.
Если родителя нет, функция вернёт null.
Синтаксис
{{ form_parent(form) }}
Пример
Давайте создадим форму с вложенной формой и получим родителя для дочерней формы:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFormExtensionCoreTypeFormType;
use SymfonyComponentFormExtensionCoreTypeTextType;
use SymfonyComponentFormExtensionCoreTypeSubmitType;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_form')]
public function form(): Response
{
$builder = $this->createFormBuilder();
$builder->add('title', TextType::class);
$builder->add('child', FormType::class);
$builder->add('save', SubmitType::class);
$form = $builder->getForm();
return $this->render('article/form.html.twig', [
'form' => $form->createView(),
]);
}
}
?>
Теперь выведем имя родительской формы для дочерней формы:
{% set parent = form_parent(form.child) %}
<p>{{ parent.vars.name }}</p>
Результат выполнения кода:
"form"
Пример
Давайте проверим, что для корневой формы родитель отсутствует:
{% set parent = form_parent(form) %}
{% if parent is null %}
<p>no parent</p>
{% endif %}
Результат выполнения кода:
"no parent"
Смотрите также
-
функция
form,
которая выводит форму целиком -
функция
form_widget,
которая выводит виджет поля формы -
функция
form_row,
которая выводит строку поля формы -
метод
getParent,
который возвращает родительскую форму в PHP