Reputation: 1678
An error occurred when I tried to put the service @doctrine.orm.entity_manager
as an argument for my listener UserDeletionListener
.
My service:
se.doctrine_listener.user_deletion:
class: SE\CoreBundle\DoctrineListener\UserDeletionListener
arguments:
- "@doctrine.orm.entity_manager"
tags:
- { name: doctrine.event_listener, event: preRemove }
My listener:
namespace SE\CoreBundle\DoctrineListener;
use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
use Doctrine\ORM\EntityManager;
use SE\UserBundle\Entity\User;
class UserDeletionListener
{
/**
* @var \Doctrine\ORM\EntityManager
*/
private $em;
public function __construct(EntityManager $entityManager)
{
$this->em = $entityManager;
}
/...
Here is the error:
Circular reference detected for service "doctrine.dbal.default_connection", path: "doctrine.dbal.default_connection".
Upvotes: 3
Views: 1802
Reputation: 31
Add Lazy loading to doctrine Event Listener
* - { name: doctrine.event_listener, event: preRemove, lazy: true }
Upvotes: 3
Reputation: 1072
when you use EventArgs {lifecycle, preUpdate, etc...], you don't have to pass doctrine.orm.entity_manager anymore :-D You can get it by the method getEntityManager of the eventArgs itself
Upvotes: 7