Symfony - EasyAdmin - 从 AssociationField 中忽略添加和删除功能
Posted
技术标签:
【中文标题】Symfony - EasyAdmin - 从 AssociationField 中忽略添加和删除功能【英文标题】:Symfony - EasyAdmin - Add and remove functions are ignored from AssociationField 【发布时间】:2021-05-05 17:00:27 【问题描述】:我使用的是最新版本的 EasyAdmin,我的 add
和 remove
函数在我提交表单时被忽略:
Ambiance
实体:
/**
* @ORM\OneToMany(targetEntity="Vehicule", mappedBy="ambiance")
*/
protected Collection $vehicules;
public function __construct()
$this->vehicules = new ArrayCollection();
public function addVehicule(Vehicule $vehicule): self
if (!$this->vehicules->contains($vehicule))
$this->vehicules[] = $vehicule;
$vehicule->setAmbiance($this);
return $this;
public function removeVehicule(Vehicule $vehicule): void
if (!$this->vehicules->contains($vehicule))
return;
$this->vehicules->removeElement($vehicule);
public function getVehicules()
return $this->vehicules;
public function setVehicules($vehicules): void
$this->vehicules = $vehicules;
然而我的教义映射是有效的..
AmbianceCrudController.php
中的我的 EasyAdmin 表单:
'vehicules' => AssociationField::new('vehicules', 'Véhicules'),
它会生成一个multiple select2
,但是当我添加车辆并提交表单时,没有插入任何数据。
【问题讨论】:
我也有同样的问题。 【参考方案1】:我正在努力解决同样的问题,但我已经发现了一些可能有用的难题:
根据我的经验,关联的拥有方(在数据库中具有外键的一方)似乎会生成一个保留更改的编辑表单。 对方完全无视变化 setter 和 getter 以及 addABC 和 removeABC 方法似乎确实被跳过了,原因我也不清楚。我希望你能找到一个解决方案,暗示关系中的 crudcontroller 对方,我认为你的情况是车辆。
【讨论】:
以上是关于Symfony - EasyAdmin - 从 AssociationField 中忽略添加和删除功能的主要内容,如果未能解决你的问题,请参考以下文章
在 Symfony 5 中使用 composer 安装 EasyAdmin 的问题
Symfony 5 / Easyadmin 3 - FormBuilder 添加的字段未显示适当的输入
Symfony 5 easyadmin 3 与 ManyToOne 关系的实体 - 不保存在“多”端
Symfony 5. EasyAdmin 3. VichUploader。同时上传多个文件