How to use entityManager inside Entity? How to use entityManager inside Entity? symfony symfony

How to use entityManager inside Entity?


Actually Entity shouldn't know about EM. I use Event Listeners if I need advance logic in my Entity. When you register Listeners like services you can pass args there, like a EM or Container and get them inside Listener class.

Symfony Doc

But I know not really good way to get EM inside Entity class. By taking global variable Kernel in Entity methods.

global $kernel;if ( 'AppCache' == get_class($kernel) ){   $kernel = $kernel->getKernel();}$em = $kernel->getContainer()->get( 'doctrine.orm.entity_manager' );

Shame on me :(


In services.yml add this

access_manager:  class: AppBundle\Services\EntityManager  arguments: [ @service_container ]

In Manager-

private $_container;public function __construct(ContainerInterface $container){    $this->_container = $container;}

To access manager-

        $entity2Manager = $this->_container->get('entity2_manager');