Différence getUser et getUsername
Bonjour.
Dans mon projet symfony2 j'ai deux entités:
User.php
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
|
<?php
namespace MyApp\UtilisateurBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\generatedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\OneToMany(targetEntity="Message", mappedBy="user")
* @ORM\OrderBy({"createdAt" = "DESC"})
*
* @var ArrayCollection $message
*/
protected $message;
public function __construct()
{
parent::__construct();
}
/**
* Get id
*
* @return integer $id
*/
public function getId()
{
return $this->id;
}
/**
* Add message
*
* @param MyApp\UtilisateurBundle\Entity\Message $message
*/
public function addMessage(\MyApp\UtilisateurBundle\Entity\Message $message)
{
$this->message[] = $message;
}
/**
* Get message
*
* @return Doctrine\Common\Collections\Collection $message
*/
public function getMessage()
{
return $this->message;
}
} |
et Message.php
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
|
<?php
namespace MyApp\UtilisateurBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="message")
*/
class Message
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="text")
*/
protected $message;
/**
* @ORM\Column(type="datetime", name="created_at")
*
* @var DateTime $createdAt
*/
protected $createdAt;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="message")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*
* @var User $username
*/
protected $username;
/**
* Get id
*
* @return integer $id
*/
public function getId()
{
return $this->id;
}
/**
* Set message
*
* @param text $message
*/
public function setMessage($message)
{
$this->message = $message;
}
/**
* Get message
*
* @return text $message
*/
public function getMessage()
{
return $this->message;
}
/**
* Set createdAt
*
* @param datetime $createdAt
*/
public function setCreatedAt($createdAt)
{
$this->createdAt = $createdAt;
}
/**
* Get createdAt
*
* @return datetime $createdAt
*/
public function getCreatedAt()
{
return $this->createdAt;
}
/**
* Set username
*
* @param MyApp\UtilisateurBundle\Entity\User $username
*/
public function setUsername(\MyApp\UtilisateurBundle\Entity\User $username)
{
$this->username = $username;
}
/**
* Get username
*
* @return MyApp\UtilisateurBundle\Entity\User $username
*/
public function getUsername()
{
return $this->username;
}
} |
Pour l'authentification j'utilise FOSUserBundle et une fois authentifié j'aimerai accéder au nom d'utilisateur lorsqu' il est connécté et qu'il poste un message. Pour faire cela, dans le controller j'utilise :
Code:
1 2
|
$utilisateur = $this->get('security.context')->getToken()->getUsername(); |
mais j'ai remarqué que le code
Code:
1 2
|
$utilisateur = $this->get('security.context')->getToken()->getUser(); |
donnait le même résultat quand. Je ne comprend pas pourquoi. Pouriez vous m'éclairer?
Merci d'avance