如何解决如何在Symfony2的webtestcase中获取EntityManager
|| 我想知道如何在内部检索实体管理器 WebTestCase实例。 例如查看在测试运行期间是否真的在数据库中创建了实体。 有什么想法吗?解决方法
您可以通过内核(WebTestCase的受保护成员)检索DIC(依赖项注入容器)。
您可以在WebTestCase中执行此操作:
$em = $this->kernel->getContainer()->get(\'doctrine.orm.entity_manager\');
更新资料
根据您自己的评论,甚至还有一个捷径(因为无论如何您都会有一个客户):
$client = $this->getClient();
$container = $client->getContainer();
正如在文档中提到的。,如果您有client
,则可以从中获取实体管理器:
$em = $client->getContainer()->get(\'doctrine.orm.entity_manager\');
不要使用`getEntityManager,自Symfony 2.1起已弃用。
请享用 :),事情已经改变,我想添加一个对Symfony 4有效的更新。
如果您需要在测试中访问服务,则仍然需要先获取容器。可以这样完成:
$container = self::$container;
现在您可以获得服务,在此示例中为实体管理器:
$this->em = $container->get(\'doctrine.orm.entity_manager\');
我使用$this
,假设语句是用ѭ7other方法编写的,而在其他测试方法中是必需的。
Symfony官方文档的相关部分。,$this->container->get(\'doctrine.orm.entity_manager\');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。