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) }}