我使用Doctrine DBAL v2.5.0,我想执行一个简单的更新语句。在文档中写道,我应该使用方法executeUpdate()(http://doctrine-dbal.readthedocs.org/en/latest/reference/data-retrieval-and-manipulation.html#executeupdate)。但是在源代码中,这个方法有@internal注释。因此,我不确定是否应该从非库代码中使用此方法。我应该吗?
答案 0 :(得分:0)
您似乎必须在doctrine服务上使用executeUpdate()
方法,而不是在实体管理器上。
$this->container->get('doctrine.orm.entity_manager')->getConnection()->executeUpdate($query);
在我的IDE中发出警告,executeUpdate()
是@internal。
$this->container->get('doctrine')->getConnection()->executeUpdate($query);
或者在控制器$this->getDoctrine()->getConnection()->executeUpdate($query);
中没有发出任何警告。
换句话说:
您想要调用executeUpdate()方法
\Doctrine\Bundle\DoctrineBundle\Registry
课程
而不是
\Doctrine\ORM\EntityManager
类
Pd积。也许我应该提一下,我将Doctrine与Symfony2结合使用。