我今天需要你的幫助。我在一個小應用程序的工作使用交響樂2.1,但我有一個問題的基礎,我有表有一個多對多的關係,它創建了一個第三個表:Symfony2刪除並保存多對多關係
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();
你能幫我弄清楚我做錯了什麼嗎?非常感謝!
你的代碼到底是什麼問題? ......儘管你堅持對象已經由這種情況下沒有必要的教義管理? :) – nifr
可以說我有用戶1和過敏原1,然後我說用戶1對1過敏,我可以做到這一點,但是當我想刪除該連接時(用戶1不再對過敏原1過敏),我無法刪除該關係。 – soni