我想功能測試期間禁用「軟可刪除的」過濾器和我做如下:禁用軟過濾器可刪除硬刪除記錄不起作用
第一種選擇:嘗試在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();
}
沒有工作。
第二個選擇:做一個doctrine_test.yml和進口在config_test.yml:
imports:
- { resource: config.yml }
- { resource: doctrine_test.yml }
- { resource: security_test.yml }
在這種情況下,我刪除doctrine.yml
和包括config_prod.yml
。
沒有工作。
這是怎麼我的doctrine_test.yml
節的樣子:
filters:
softdeleteable:
class: Gedmo\SoftDeleteable\Filter\SoftDeleteableFilter
enabled: false
第三種選擇:在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();
}
沒有工作。
有什麼建議嗎?解?
我不認爲這是一個錯誤。在我的理解中,'$ this-> em-> getFilters() - > disable('softdeleteable');'只會禁用檢索軟刪除實體的過濾器。另請參閱https://stackoverflow.com/a/35459837/2564552 – spackmat