Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1K
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda