EasyAdmin 3:嵌套表单(另一个集合中的调用)
Posted
技术标签:
【中文标题】EasyAdmin 3:嵌套表单(另一个集合中的调用)【英文标题】:EasyAdmin 3 : Nested forms (Callection in another Collection) 【发布时间】:2021-07-09 05:59:12 【问题描述】:我使用 EasyAdmin 3。
我正在使用 Symfony 5 创建一个时事通讯管理器。我的实体就是这样构建的。
时事通讯(ManyToOne => NewsletterItem)
通讯项目(ManyToOne => NewsletteItemSub)
NewsletteItemSub
在 EasyAdmin 中,我能够在 Newsletter 中添加 NewsletterItem。但我不知道如何在 EasyAdmin 的 NewsletterItem 中添加 NewsletterItemSub。
有人有想法吗?
我当前的代码:
CollectionField::new('newsletterItems', 'Newsletter Items')
->allowAdd()
->allowAdd()
->setEntryIsComplex(false)
->setEntryType(NewsletterItemType::class)
->showEntryLabel(false)
->setFormTypeOptions([
by_reference' => false
]
)
->hideOnIndex(),
【问题讨论】:
【参考方案1】:创建 NewsletterItemSubType 表单类并将其嵌入到 NewsletterItemType
类似这样的:
<?php
#...
class NewsletterItemType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options): void
#...
$builder->add('tags', CollectionType::class, [
'entry_type' => NewsletteItemSubType::class,
'entry_options' => ['label' => false],
]);
#...
https://symfony.com/doc/current/form/form_collections.html
【讨论】:
谢谢,我已经找到了。效果很好。以上是关于EasyAdmin 3:嵌套表单(另一个集合中的调用)的主要内容,如果未能解决你的问题,请参考以下文章
EasyAdmin 3:限制登录用户的数据仍然在表单下拉列表中显示其他数据