检测到服务“doctrine.dbal.default_connection”的循环引用,路径:“doctrine.dbal.default_connection”

时间:2017-09-14 23:52:08

标签: php symfony doctrine-orm doctrine

当我尝试将服务example_module u__example_module ( .a (a), .b (b), .x (x), .y (y), .clk(clk) ); 作为我的侦听器@doctrine.orm.entity_manager的参数时发生错误。

我的服务:

UserDeletionListener

我的听众:

se.doctrine_listener.user_deletion:
        class: SE\CoreBundle\DoctrineListener\UserDeletionListener
        arguments:
              - "@doctrine.orm.entity_manager"
        tags:
            - { name: doctrine.event_listener, event: preRemove }

这是错误:

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;
    }
/...

2 个答案:

答案 0 :(得分:2)

当你使用EventArgs {lifecycle,preUpdate等...]时,你不必再通过doctrine.orm.entity_manager :-D你可以通过eventArgs本身的getEntityManager方法得到它

答案 1 :(得分:0)

将延迟加载添加到学说事件监听器中

* -{名称:doctrine.event_listener,事件:preRemove,惰性:true}