Мне нужна ваша помощь сегодня. Я работаю на небольшое приложение, используя симфонию 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) I не может удалить это отношение. – soni