我的老板为softdelete过滤器安装了这个软件包,但文档超出了稀疏范围.如何在删除查询中使用它?
我正在尝试在功能测试期间禁用"软可删除"过滤器,我按以下方式执行:
第一个选项:尝试tearDown()在我的测试中禁用:
protected function tearDown() {
parent::tearDown();
$entityUser = $this->em->getRepository("UserSecurityBundle:User")->find($this->user->getUser()->getId());
$filter = $this->em->getFilters()->disable('softdeleteable');
$this->em->remove($entityUser);
$this->em->flush();
$this->em->close();
}
Run Code Online (Sandbox Code Playgroud)
没工作.
第二个选项:创建一个doctrine_test.yml并在config_test.yml中导入:
imports:
- { resource: config.yml }
- { resource: doctrine_test.yml }
- { resource: security_test.yml }
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我删除doctrine.yml并包含在config_prod.yml.
没工作.
这是我的doctrine_test.yml部分的样子:
filters:
softdeleteable:
class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
enabled: false
Run Code Online (Sandbox Code Playgroud)
第三个选项:禁用过滤器setUp():
public function setUp() {
static::$kernel = static::createKernel();
static::$kernel->boot();
$this->em = static::$kernel->getContainer()->get('doctrine')->getManager();
$fixture = new LoadFeeData();
$fixture->load($this->em);
$this->em->getFilters()->disable('softdeleteable');
$this->user = $this->createUser();
parent::setUp();
}
Run Code Online (Sandbox Code Playgroud)
没工作.
有什么建议?解?
我在https://github.com/KnpLabs/DoctrineBehaviors/#softDeletable的实体中使用 SoftDeletable 特征它工作正常,但有时我想强制删除实体。我怎样才能做到这一点?
当我使用时$em->remove($entity),它会被软删除,但我需要将其从数据库中完全删除。