【问题标题】:EasyAdmin 3 : Nested forms (Callection in another Collection)EasyAdmin 3:嵌套表单(另一个集合中的调用)
【发布时间】: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(),

【问题讨论】:

    标签: php symfony easyadmin3


    【解决方案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

    【讨论】:

    • 谢谢,我已经找到了。效果很好。
    猜你喜欢
    • 2020-11-07
    • 1970-01-01
    • 2019-08-11
    • 2021-09-01
    • 2022-01-11
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多