Symfony 如何在嵌入的表单中仅呈现特定的孙辈?

Symfony 如何在嵌入的表单中仅呈现特定的孙辈?,symfony,symfony4,symfony-forms,Symfony,Symfony4,Symfony Forms,我的问题与类似,但没有包含模板 我有一个嵌套的表单 demand home n children 需求类型 class DemandTypeExtension extends AbstractTypeExtension { public function buildForm(...): void { $builder ->add('home', HomeType::class, [ ])

我的问题与类似,但没有包含模板

我有一个嵌套的表单

demand
    home
       n children
需求类型

class DemandTypeExtension extends AbstractTypeExtension {
    public function buildForm(...): void
    {
        $builder
            ->add('home', HomeType::class, [
            ]);
家庭式

class HomeType extends AbstractType {
    public function buildForm(): void {
        $builder
            ->add('children', CollectionType::class, [
                'entry_type' => ChildrenType::class,
                'allow_add' => true,
                'by_reference' => false,
                'allow_delete' => true,
                'prototype' => true,
                'label' => false,
            ]);
    }

    public function configureOptions(OptionsResolver $resolver): void {
        $resolver->setDefaults([
            'data_class' => Home::class,
        ]);
    }
}
儿童型

class ChildrenType extends AbstractType {
    public function buildForm(...): void
    {
        $builder
            ->add('name', TextType::class, [
        ]);
    }

    public function configureOptions(OptionsResolver $resolver): void {
        $resolver->setDefaults([
            'data_class' => Children::class,
        ]);
    }
我的表格

{{ form_widget(form.children) }}
属性“children”或方法“children()”、“getchildren()”/“ischildren()”/“haschildren()”或“\uu call()”都不存在,并且在类“Symfony\Component\Form\FormView”中具有公共访问权限

似乎我必须渲染主输入

是否不可能仅呈现子输入?也许有一些特殊的上下文(伪代码)


是的,你能做到。假设您的小树枝示例中的
form
DemandType
的一个实例,那么您将执行以下操作:

{{ form_widget(form.home.children) }}
但是,这可能不起作用,因为
子类
也是某些Symfony表单类型上的内置属性。在
HomeType
中,我会将字段
children
重命名为其他名称,例如
childrenCollection
,在这种情况下,您可以在您的细枝视图中执行此操作:

{{ form_widget(form.home.childrenCollection) }}
{{ form_widget(form.home.childrenCollection) }}