Hola cordial saludo, nuevamente les solicito ayuda con el siguiente problema:
Estoy trabajando en Symfony 2.7, y tengo 3 Tablas.
Tabla1: Usuario
Tabla2: Rol
Tabla3: usuario_rol
Al momento de guardar los datos a través del formulario de Usuario, los datos se guardan en Tabla 1 y Tabla 3 perfectamente, Pero si guardo desde el formulario de Rol ya no me guarda en la 3° que es la de la relación.
Agradezco su ayuda, estas son las entidades:
<?php
namespace DeteccionBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Usuario
*
* @ORM\Table(name="usuario")
* @ORM\Entity
*/
class Usuario
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="nom", type="string", length=50, nullable=true)
*/
private $nom;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Rol", inversedBy="usuario")
* @ORM\JoinTable(name="usuario_has_rol",
* joinColumns={
* @ORM\JoinColumn(name="usuario_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="rol_id", referencedColumnName="id")
* }
* )
*/
private $rol;
/**
* Constructor
*/
public function __construct()
{
$this->rol = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set nom
*
* @param string $nom
*
* @return Usuario
*/
public function setNom($nom)
{
$this->nom = $nom;
return $this;
}
/**
* Get nom
*
* @return string
*/
public function getNom()
{
return $this->nom;
}
/**
* Add rol
*
* @param \DeteccionBundle\Entity\Rol $rol
*
* @return Usuario
*/
public function addRol(\DeteccionBundle\Entity\Rol $rol)
{
$this->rol[] = $rol;
return $this;
}
/**
* Remove rol
*
* @param \DeteccionBundle\Entity\Rol $rol
*/
public function removeRol(\DeteccionBundle\Entity\Rol $rol)
{
$this->rol->removeElement($rol);
}
/**
* Get rol
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getRol()
{
return $this->rol;
}
}
<?php
namespace DeteccionBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Rol
*
* @ORM\Table(name="rol")
* @ORM\Entity
*/
class Rol
{
public function __toString()
{
return $this->getDes();
}
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="des", type="string", length=50, nullable=true)
*/
private $des;
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="Usuario", mappedBy="rol")
*/
private $usuario;
/**
* Constructor
*/
public function __construct()
{
$this->usuario = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set des
*
* @param string $des
*
* @return Rol
*/
public function setDes($des)
{
$this->des = $des;
return $this;
}
/**
* Get des
*
* @return string
*/
public function getDes()
{
return $this->des;
}
/**
* Add usuario
*
* @param \DeteccionBundle\Entity\Usuario $usuario
*
* @return Rol
*/
public function addUsuario(\DeteccionBundle\Entity\Usuario $usuario)
{
$this->usuario[] = $usuario;
return $this;
}
/**
* Remove usuario
*
* @param \DeteccionBundle\Entity\Usuario $usuario
*/
public function removeUsuario(\DeteccionBundle\Entity\Usuario $usuario)
{
$this->usuario->removeElement($usuario);
}
/**
* Get usuario
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getUsuario()
{
return $this->usuario;
}
}