Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1K
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!