symfony2 querybuilder query generate consultas symfony doctrine2 dql

querybuilder - Symfony ingresando al ID del usuario



symfony 3.4 doctrine query (4)

En Symfony2, podemos simplificarlo con este código:

$id = $this->getUser()->getId();

Estoy desarrollando una aplicación que usa Symfony2 y doctrina 2. Me gustaría saber cómo puedo obtener el ID del usuario actualmente conectado.


Esto puede vestirse con el método:

/** * Get user id * @return integer $userId */ protected function getUserId() { $user = $this->get(''security.context'')->getToken()->getUser(); $userId = $user->getId(); return $userId; }

Y la inducción $ this-> getUserId ()

public function example() { print_r($this->getUserId()); }


Puedes obtener la variable con el siguiente código:

$userId = $this->get(''security.context'')->getToken()->getUser()->getId();


Versiones actuales de Symfony (Symfony 4, Symfony> = 3.2)

Desde Symfony> = 3.2 , puede esperar que una implementación de UserInterface sea ​​inyectada a la acción de su controlador directamente. A continuación, puede llamar a getId() para recuperar el identificador del usuario:

class DefaultController extends Controller { // when the user is mandatory (e.g. behind a firewall) public function fooAction(UserInterface $user) { $userId = $user->getId(); } // when the user is optional (e.g. can be anonymous) public function barAction(UserInterface $user = null) { $userId = null !== $user ? $user->getId() : null; } }

Todavía puede usar el almacenamiento de token de seguridad como en todas las versiones de Symfony desde 2.6. Por ejemplo, en su controlador:

$user = $this->get(''security.token_storage'')->getToken()->getUser();

Tenga en cuenta que el acceso directo Controller::getUser() mencionado en la siguiente parte de esta respuesta está obsoleto en Symfony 3 y se eliminó en Symfony 4.0

Versiones heredadas de Symfony

La forma más fácil de acceder al usuario solía ser ampliar el controlador base y usar el método abreviado getUser() (eliminado en Symfony 4):

$user = $this->getUser();

Desde Symfony 2.6 puede recuperar un usuario del almacenamiento de token de seguridad:

$user = $this->get(''security.token_storage'')->getToken()->getUser();

Antes de Symfony 2.6 , el token era accesible desde el servicio de contexto de seguridad:

$user = $this->get(''security.context'')->getToken()->getUser();

Tenga en cuenta que el servicio de contexto de seguridad está en desuso en Symfony 2 y se eliminó en Symfony 3.0.