清空集合时出现问题,它没有保存 EasyAdmin



对于具有多个属性的实体,我有一个表单显示其中一个属性,它是一个集合。

我在 EasyAdmin 上有这个表格,我可以在集合中添加和删除项目,问题是我无法删除所有项目,更改不会保存,或者即使只剩下一个项目,如果我删除它,它也不会保存。

我找到的解决方案

我在删除报价时遇到的错误是,当尝试删除数据库中未删除的所有产品/服务时,似乎当空 POST 的整个正文没有在数据库上执行任何内容时,因为如果您将报价与所有属性一起放在 Bike 表单中,如果您让它们被删除。

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

实体自行车:

class Bike{
// More properties    
/**
* @ORMOneToMany(targetEntity="AppEntityBikeOffer", 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    
/**
* @ORMManyToOne(targetEntity="AppEntityBike", inversedBy="priceOffers")
*/
private $bike;
// getter and setter methods
}

EasyAdmin中的实体:

bike_offers:
class: AppEntityBike
role: ROLE_MANAGER
form:
fields:
- property: 'priceOffers'
type: 'collection'
css_class: 'offers-collection'
type_options:
entry_type: AppFormBikeOfferType
by_reference: false
label: false

您需要添加allow_delete选项并设置为true

type_options:
allow_delete: true

https://symfonycasts.com/screencast/easyadminbundle/collection-type

相关内容

  • 没有找到相关文章

最新更新