Symfony2:暂时禁用softdelete
我想暂时禁用softdelete,所以我可以通过ID找到删除的实体,然后在我的单元测试中真正删除它们(这样可以确保我不会阻塞数据库)。
我试过的:
$this->em->getFilters()->disable('softdeletable');
$item = $repository->findOneById($id); //fetch the item which was soft-deleted
$this->em->remove($item);
$this->em->flush();
但是这会引发一个错误:
InvalidArgumentException : Filter 'softdeletable' is not enabled.
我也尝试禁用('软删除')和禁用('软可删除')等 - 没有任何工作。 但是当我看$ this-> em-> getFilters()时,过滤器是THERE:
["enabledFilters"]=>
array(1) {
["softdeletable"]=>
string(48) "GedmoSoftDeleteableFilterSoftDeleteableFilter"
}
尝试没有禁用的代码当然不起作用:
DoctrineORMORMInvalidArgumentException : EntityManager#remove() expects parameter 1 to be an entity object, NULL given.
我究竟做错了什么? 我知道我可以真正删除东西与设置deletedAt新的日期时间,但我怎么删除一个项目而不先取得它?
谢谢你的帮助!
最初是一个评论....
你是用循环还是其他?
如果是这样,过滤器可能已被禁用。
你可以检查它是否启用之前禁用使用如果像...
$this->em->getFilters()->isEnabled('softdeleteable'))...
链接地址: http://www.djcxy.com/p/65037.html