Symfony – How to get entity manager for Doctrine entity with Symfony 2.1 from inside controller

controllerdoctrine-ormsymfony

How can I get an entity manager from inside a controller with latest Symfony and Doctrine?

The way described in "The Book" flagged as deprecated now. What is a modern (proper) way to do this?

public function someAction()
{
    // getEntityManager() from Doctrine\Bundle\DoctrineBundle\Registry is deprecated
    $entityManager = $this->getDoctrine()->getEntityManager();
    ...
}

Best Answer

Use $this->getDoctrine()->getManager() instead.

Actually, it's best not to make controllers aware of the persistence layer you're using. That stuff should be moved to the Service Layer to abstract the way the data is persisted.

Related Topic