问题清空一个集合,它没有保存

问题描述 投票:0回答:1

对于具有多个属性的实体,我有一个表格显示这些属性之一,它是一个集合。

我使用EasyAdmin拥有此表单,我可以从集合中添加和删除项目,问题是我无法删除所有项目,因此更改不会保存或即使只剩下一项,如果删除,它未保存。

我在删除报价时遇到的错误是,当尝试删除所有未在数据库上删除的报价时,似乎空POST的整个正文都没有在数据库上执行任何操作,因为如果您将报价[自行车]表单中的所有属性(如果您将其删除)。

因此,我要采取的解决方案是将一个额外的字段添加为隐藏字段,以便在不加任何折扣的情况下发送帖子时,它不会为空。

实体自行车:

class Bike{
    // More properties    

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Bike\Offer", mappedBy="bike", orphanRemoval=true, cascade={"persist"})
     */
    private $priceOffers;

    public function __construct()
    {
        $this->priceOffers = new ArrayCollection();
    }

    // Adding, removing items and getter methods
}

实体报价:

class Offer{
    // More properties    

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Bike", inversedBy="priceOffers")
     */
    private $bike;

    // getter and setter methods
}

EasyAdmin中的实体:

bike_offers:
    class: App\Entity\Bike
    role: ROLE_MANAGER
    form:
        fields:
            - property: 'priceOffers'
              type: 'collection'
              css_class: 'offers-collection'
              type_options:
                entry_type: App\Form\Bike\OfferType
                by_reference: false
                label: false
symfony doctrine-orm symfony4 easyadmin
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.