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.
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');