symfony, User class depuis plusieurs entités
Bonsoir,
Je cherche à créer un application dont j'ai modélisé les données ainsi:
http://puu.sh/lmMwy/9ee786e600.png
Je créé un fichier security pour gérer le login et mot de passe:
Code:
1 2 3 4 5
| security:
providers:
our_db_provider:
# entity: { class: AppBundle\Entity\User, property: username}
entity: { class: essaiBundle\Entity\Login, property: login} |
Quand j'utilise la classe User, qui est un copié collé de la doc Symfony, évidemment tout fonctionne correctement, mais j'ai du coup tous les champs dans la même table. Ici j'ai la classe user dans une entity, puis une deuxième entity login, en liaison 1-1. Est-ce que dans mon provider je dois utiliser la class login?
La classe Login ressemble à ça:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
| <?php
namespace essaiBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Security\Core\User\UserInterface;
/**
* Login
*
* @ORM\Table(name="login")
* @ORM\Entity
*/
class Login implements UserInterface, \Serializable
{
/**
* @var string
*
* @ORM\Column(name="login", type="string", length=255, nullable=false)
*/
private $login;
/**
* @var string
*
* @ORM\Column(name="password", type="string", length=255, nullable=false)
*/
private $password;
/**
* @var \essaiBundle\Entity\Utilisateur
*
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
* @ORM\OneToOne(targetEntity="essaiBundle\Entity\Utilisateur")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="uId", referencedColumnName="uId")
* })
*/
private $uid;
/**
* Set login
*
* @param string $login
*
* @return Login
*/
public function setLogin($login)
{
$this->login = $login;
return $this;
}
/**
* Get login
*
* @return string
*/
public function getLogin()
{
return $this->login;
}
/**
* Set password
*
* @param string $password
*
* @return Login
*/
public function setPassword($password)
{
$this->password = $password;
return $this;
}
/**
* Get password
*
* @return string
*/
public function getPassword()
{
return $this->password;
}
/**
* Set uid
*
* @param \essaiBundle\Entity\Utilisateur $uid
*
* @return Login
*/
public function setUid(\essaiBundle\Entity\Utilisateur $uid)
{
$this->uid = $uid;
return $this;
}
/**
* Get uid
*
* @return \essaiBundle\Entity\Utilisateur
*/
public function getUid()
{
return $this->uid;
}
public function eraseCredentials() {
}
public function getRoles() {
}
public function getSalt() {
}
public function getUsername() {
return $this->login;
}
public function serialize() {
}
public function unserialize($serialized) {
}
} |
Est-ce que je m'y prend juste? Y aurait-il un autre moyen de le faire plus simplement? En tout cas ca ne fonctionne pas, comment puis-je faire?
Merci
Bonne soirée