Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

549
Vistas
El atributo Symfony #[CurrentUser] devuelve nulo
<?php declare(strict_types=1); namespace App\Controller\User; use App\Entity\User; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Security\Http\Attribute\CurrentUser; #[Route('/users', name: 'user.')] class UserController extends AbstractController { #[Route(name: 'list')] public function list(#[CurrentUser] ?User $user, Request $request): Response { dd($user->getFirstName()); }

Call to a member function getFirstName() on null

Pero estoy autorizado. En Symfony Profiler, muestra que estoy conectado.

Entorno: PHP 8.0.11 Symfony 5.3.9

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Los detalles correctos sobre la solución son proporcionados por https://stackoverflow.com/users/1144627/will-b El atributo Symfony #[CurrentUser] devuelve nulo

El problema es causado por ParamConvertor habilitado ( sensio/framework-extra-bundle ). No puede resolver el Usuario debido a la falta de definiciones de cómo obtener la Entidad de la base de datos, por lo que establece la variable $user en null debido al #[CurrentUser] ?User $user anulable. Si desea mantener la funcionalidad del convertidor de parámetros y el atributo #[CurrentUser] al mismo tiempo, debe deshabilitar la conversión automática #

 config/packages/sensio_framework_extra.yaml sensio_framework_extra: request: converters: true auto_convert: false

Y defina los parámetros de ruta cada vez manualmente. Fuentes: https://symfony.com/bundles/SensioFrameworkExtraBundle/current/annotations/converters.html https://symfony.com/blog/new-in-symfony-5-2-controller-argument-attributes https:// symfony.com/doc/current/controller/argument_value_resolver.html

Solución para evitar estos problemas: Lea los documentos al 200 % de la escala del navegador.

over 4 years ago · Santiago Trujillo Denunciar

0

si su controlador extiende "AbstractController", puede usar $this->getUser() para obtener el usuario actual.

en su función de lista, no está dando una identificación de usuario ni un $ usuario, por lo que $ usuario es racionalmente nulo

 #[Route('/users', name: 'user.')] class UserController extends AbstractController { #[Route(name: 'list')] public function list( Request $request): Response { dd($this->getUser()->getFirstName()); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda