gpt4 book ai didi

symfony - 学说 2 : Detach/Merge on ManyToMany association

转载 作者:行者123 更新时间:2023-12-02 00:22:16 25 4
gpt4 key购买 nike

我一直在努力使用这些功能 ( attach/merge feature )。

我的需求很简单,我有一个 BookFilterType 可以过滤 Book 对象的集合。

到现在为止,做的时候

public function indexAction()
{
$book = new Book($this->getUser());
$filters = $this->getFilters();
$form = $this->createForm(new BookFilterType(), $filters);

...
return array(...);
}

我收到一个错误:必须管理传递给选择字段的实体,因为在过滤器中它们是其他实体。

基本上,在 session 中保存过滤条件时,我只需要存储 ID,然后使用 find($id) 重新组合它们。

但这很丑陋,而且我的代码变得不可读了!

所以我决定使用分离/合并功能。

存储分离的实体后,我想再次合并它们以在表单中重新注入(inject)值,似乎我需要在我的对象上使用 cascade={"merge"} 因为我得到:

类 Doctrine\Common\Collections\ArrayCollection 不是有效的实体或映射的父类(super class)。

问题(最后)

我在哪里放置 cascade={"merge"} :在 joinColumnsinverseJoinColumns 上?或两者 ? ?因为我在这些过滤器中只有 ManyToMany 关联

/**
* @ORM\ManyToMany(targetEntity="MyTargetedEntity")
* @ORM\JoinTable(name="target_entity_nn",
* joinColumns={@ORM\JoinColumn(name="some_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="other_id", referencedColumnName="id")}
* )
*
**/
private $contributors;

PS: 我正在使用 Symfony2.1/Doctrine master

谢谢

最佳答案

关于symfony - 学说 2 : Detach/Merge on ManyToMany association,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10415474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com