symfony:将EntityManager添加到实体类

时间:2016-08-06 19:29:18

标签: service doctrine symfony

我有一个名为"投票"我需要在这个类中使用doctrine来执行一些操作,将这个类的值集成到EasyAdmin包显示列表中。

我在services.yml中有这个:

app.user:
        class: AppBundle\Entity\Vote
        calls:
                 - ['setMe', ["doctrine.orm.entity_manager"]]

这在我的班级中:

public function setMe($entityManager) {
    $this->em = $entityManager;
}

但是从不调用setMe()(我使用xdebug)。

所以,我尝试过:

app.user:
    class: AppBundle\Entity\Vote
    calls:
             - ['setMe', ["doctrine.orm.entity_manager"]]
    arguments:    ["@doctrine.orm.entity_manager"]

public function __construct(\Doctrine\ORM\EntityManager $em){
        $this -> date = new \DateTime();
        $this -> em = $em;
    }

但结果相同:$ this-> em未设置。

我的错误在哪里?

1 个答案:

答案 0 :(得分:0)

你(几乎)从不应该需要实体和实体中的实体经理不应该是服务,我认为。

但如果你真的需要它,你应该使用service container。如果您在控制器中调用$this->get('app.user');,它应该返回Vote实体。或者使用控制器注射。