【发布时间】:2013-08-30 09:02:12
【问题描述】:
我今天需要你的帮助。我正在使用 Symfony 2.1 开发一个小型应用程序,但我有一个基本问题,我必须创建具有多对多关系的表,从而创建第三个表:
class Usuario implements UserInterface {
/**
* @ORM\ManyToMany(targetEntity="Alood\BackBundle\Entity\Alergeno", inversedBy="usuarios")
* @ORM\JoinTable(name="UsuariosProductos",
* joinColumns={@ORM\JoinColumn(name="usuario_user", referencedColumnName="user")},
* inverseJoinColumns={@ORM\JoinColumn(name="alergeno_id", referencedColumnName="id")}
* )
**/
protected $alergenos;
}
public function __construct(){
$this->alergenos = new ArrayCollection();
}
public function getAlergenos() { return $this->alergenos; }
和:
/**
* @ORM\ManyToMany(targetEntity="Alood\BackBundle\Entity\Usuario", mappedBy="alergenos")
**/
protected $usuarios;
然后我需要删除未选中的 Alergenos,这是我的控制器:
$alergenosUser = $em->getRepository("BackBundle:Usuario")->find($usuario);
$resultSym = array_diff($alergenosUsuarioIds, $alergen);
foreach($resultSym as $result) {
$alergenosUser->getAlergenos()->remove($result);
}
$em->persist($alergenosUser);
$em->flush();
你能帮我弄清楚我做错了什么吗?非常感谢!
【问题讨论】:
-
您的代码到底有什么问题? ...尽管您坚持对象已经由在这种情况下没有必要的学说管理? :)
-
假设我有用户 1 和过敏原 1,然后我说用户 1 对 1 过敏,我可以这样做,但是当我想删除该连接时(用户 1 不再过敏过敏原 1) 我不能删除那个关系。
标签: symfony many-to-many symfony-2.1 persist