Buenas noches a todos!
Estoy haciendo una aplicación donde necesito gestionar usuarios (ROLE_USER y ROLE_ADMIN)
La entidad USUARIOS es:
namespace Aplicacion\AplicacionBundle\Entity;
use Symfony\Component\Security\Core\User\UserInterface;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
* Aplicacion\AplicacionBundle\Entity\Usuarios
* @ORM\Table(name="usuarios")
class Usuarios implements UserInterface,\Serializable
public function getUsername()
public function getSalt()
public function eraseCredentials()
* @see \Serializable::serialize()
public function serialize()
* @see \Serializable::unserialize()
public function unserialize($serialized)
) = unserialize($serialized);
* @ORM\Column(name="idusuario", type="integer")
* @ORM\GeneratedValue(strategy="NONE")
* @ORM\Column(name="nombre", type="string", length=255)
* @ORM\Column(name="email", type="string", length=100)
* @ORM\Column(name="telefono", type="integer")
* @ORM\Column(name="login", type="string", length=10)
* @ORM\Column(name="password", type="string", length=10)
* @ORM\Column(name="num_asociado", type="integer")
* @ORM\Column(name="apellidos", type="string", length=255)
* @ORM\Column(name="dni", type="string", length=9)
* @ORM\Column(name="web", type="string", length=100)
* @ORM\Column(name="activado", type="smallint")
* @ORM\ManyToMany(targetEntity="Aplicacion\AplicacionBundle\Entity\Grupos", inversedBy="usuarios")
* @ORM\Column(name="idusuario_activante", type="integer")
private $idusuarioActivante;
* @var \Datetime $fechaActivacion
* @ORM\Column(name="fecha_activacion", type="datetime")
private $fechaActivacion;
* @ORM\Column(name="informar", type="smallint")
public function setId($id)
public function setNombre($nombre)
public function getNombre()
public function setEmail($email)
public function getEmail()
* @param integer $telefono
public function setTelefono($telefono)
$this->telefono = $telefono;
public function getTelefono()
public function setLogin($login)
public function getLogin()
* @param string $password
public function setPassword($password)
$this->password = $password;
public function getPassword()
* @param integer $numAsociado
public function setNumAsociado($numAsociado)
$this->numAsociado = $numAsociado;
public function getNumAsociado()
return $this->numAsociado;
* @param string $apellidos
public function setApellidos($apellidos)
$this->apellidos = $apellidos;
public function getApellidos()
public function setDni($dni)
public function setWeb($web)
* @param integer $activado
public function setActivado($activado)
$this->activado = $activado;
public function getActivado()
* @param integer $idgrupo
public function setIdgrupo($idgrupo)
$this->idgrupo = $idgrupo;
public function getIdgrupo()
/////////////////////////////////////////////////////////
// Para obtener los roles de ROLE_USER y ROLE_ADMIN
public function __construct()
$this->idgrupo = new ArrayCollection();
public function getRoles()
return $this->idgrupo->toArray();
/////////////////////////////////////////////////////////
* @param integer $idusuarioActivante
public function setIdusuarioActivante($idusuarioActivante)
$this->idusuarioActivante = $idusuarioActivante;
public function getIdusuarioActivante()
return $this->idusuarioActivante;
* @param \DateTime $fechaActivacion
public function setFechaActivacion($fechaActivacion)
$this->fechaActivacion = $fechaActivacion;
public function getFechaActivacion()
return $this->fechaActivacion;
* @param integer $informar
public function setInformar($informar)
$this->informar = $informar;
public function getInformar()
public function __toString() {
return strval($this->nombre) ;
La entidad GRUPOS es:
namespace Aplicacion\AplicacionBundle\Entity;
use Symfony\Component\Security\Core\Role\RoleInterface;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
* Aplicacion\AplicacionBundle\Entity\Grupos
* @ORM\Table(name="grupos")
* @ORM\Column(name="idgrupo", type="integer")
* @ORM\GeneratedValue(strategy="NONE")
* @ORM\Column(name="nombre", type="string", length=255)
* @ORM\Column(name="rol", type="string", length=20, unique=true)
* @ORM\ManyToMany(targetEntity="Aplicacion\AplicacionBundle\Entity\Usuarios", mappedBy="grupos")
public function setId($id)
public function setNombre($nombre)
public function getNombre()
* @ORM\ManyToMany(targetEntity="Usuarios", mappedBy="idgrupo")
public function __construct()
$this->usuarios = new ArrayCollection();
public function __toString() {
return strval($this->nombre) ;
El archivo security.yml es:
Symfony\Component\Security\Core\User\User: plaintext
Aplicacion\AplicacionBundle\Entity\Usuarios: plaintext
ROLE_SUPER_ADMIN: [ ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]
providers: [in_memory, user_db, administradores]
entity: { class: Aplicacion\AplicacionBundle\Entity\Usuarios , property: login}
entity: { class: Aplicacion\AplicacionBundle\Entity\Usuarios , property: login}
admin: { password: 1234, roles: 'ROLE_ADMIN' }
pattern: ^/(_(profiler|wdt)|css|images|js)/
#default_target_path: default_security_target
- { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/login2, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/inicio, roles: ROLE_USER }
- { path: ^/admin, roles: ROLE_ADMIN }
Y me da el siguiente error cuando intenta hacer el check:
The column id must be mapped to a field in class Aplicacion\AplicacionBundle\Entity\Usuarios since it is referenced by a join column of another class.
¿Alguien sabe porqué puede ser? Estoy usando PHP: 5.4.7.
Gracias de antemano!!!