如何在Symfony2控制台应用程序中获取Doctrine ORM实例?

35

可能是重复问题:
如何向Symfony控制台命令注入依赖项?

我想创建一个控制台应用程序,每小时使用计划任务从数据库更改一些记录。如何在此处获取Doctrine ORM实例?

在普通的控制器中,我会这样做:

$this->getDoctrine();
1个回答

76

如果你从ContainerAwareCommand继承,你应该能够获取到你的服务。

$this->getContainer()->get('doctrine');

这里有一个类似的问题


谢谢 ;) 我在 Symfony\Component\Console 命名空间中搜索,但我没有注意到还有 Symfony\Bundle\FrameworkBundle\ConsoleSymfony\Bundle\FrameworkBundle\Command - pamil
“getContainer”方法准确的定义在哪里?我在“ContainterAwareCommand”中找不到它。 - Luke
@Luke 据我所知,这个答案是关于 2.0 版本的。你在使用哪个版本? - Vitalii Zurian
我使用的是2.3版本。在SO上有很多关于这个问题的帖子,但似乎都不起作用。在2.3的情况下,如何获取容器的引用?我猜想你需要先引导内核,但这在控制台应用程序中并不是标准流程? - Luke
@Luke,你能发一下你代码的链接吗? - Vitalii Zurian
这在Symfony 3中有效。 - J.D. Pace

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接