Symfony EntityType不会删除缺少的选项

时间:2019-02-13 16:37:31

标签: symfony4

不确定我是否正确处理此问题。我有一个发票和一个GroupInvoice。 GroupInvoices是一对多的发票。

我有以下形式(由于我想根据表单的基础数据过滤掉选项,因此整个表单都内置在EventListener中):

public function buildForm(FormBuilderInterface $builder, array $options)
{

    $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
        $invoice = $event->getData();
        $form = $event->getForm();

        $groupPayor = $invoice->getGroupPayor();
        $year = $invoice->getYear();

        $form->add('invoices', EntityType::class, array(
            'required'      => false,
            'class'         => 'App:Invoice',
            'by_reference'  => false,
            'multiple'      => true,
            'expanded'      => true,
            'query_builder' => $this->em->getRepository('App:Invoice')->getUnpaidInvoicesForGroupPayorQuery($groupPayor, $year)
        ));
    });

}

在我的存储库方法中,我正在筛选出已附加到GroupInvoice上的发票,包括当前的发票...基本上,我只想向用户显示可添加的发票复选框...问题就是说,如果我提交表单,则它实际上仅使用最近一次表单提交中已检查的发票覆盖所有当前发票。有什么办法告诉它只添加而不是删除?

我计划允许通过单独的表格进行删除,以免造成混淆...

0 个答案:

没有答案