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

1K
Vistas
Nueva alternativa para getDoctrine() en Symfony 5.4 y versiones posteriores

Como señala mi IDE, el método AbstractController::getDoctrine() ahora está en desuso.

No he encontrado ninguna referencia para esta desaprobación ni en la documentación oficial ni en el registro de cambios de Github.

¿Cuál es la nueva alternativa o solución para este atajo?

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

0

Como se menciona aquí :

En lugar de usar esos accesos directos, inyecte los servicios relacionados en el constructor o en los métodos del controlador.

Necesitas usar la inyección de dependencia.

Para un controlador dado, simplemente inyecte ManagerRegistry en el constructor del controlador.

 use Doctrine\Persistence\ManagerRegistry; class SomeController { public function __construct(private ManagerRegistry $doctrine) {} public function someAction(Request $request) { // access Doctrine $this->doctrine; } }
over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar EntityManagerInterface $entityManager:

 public function delete(Request $request, Test $test, EntityManagerInterface $entityManager): Response { if ($this->isCsrfTokenValid('delete'.$test->getId(), $request->request->get('_token'))) { $entityManager->remove($test); $entityManager->flush(); } return $this->redirectToRoute('test_index', [], Response::HTTP_SEE_OTHER); }
over 4 years ago · Santiago Trujillo Denunciar

0

Según la respuesta de @yivi y como se menciona en la documentación , también puede seguir el ejemplo a continuación inyectando Doctrine\Persistence\ManagerRegistry directamente en el método que desee:

 // src/Controller/ProductController.php namespace App\Controller; // ... use App\Entity\Product; use Doctrine\Persistence\ManagerRegistry; use Symfony\Component\HttpFoundation\Response; class ProductController extends AbstractController { /** * @Route("/product", name="create_product") */ public function createProduct(ManagerRegistry $doctrine): Response { $entityManager = $doctrine->getManager(); $product = new Product(); $product->setName('Keyboard'); $product->setPrice(1999); $product->setDescription('Ergonomic and stylish!'); // tell Doctrine you want to (eventually) save the Product (no queries yet) $entityManager->persist($product); // actually executes the queries (ie the INSERT query) $entityManager->flush(); return new Response('Saved new product with id '.$product->getId()); } }
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