我正在尝试从Doctrine 2中的实体外部禁用实体事件.每次我们在表中插入新记录时,都需要运行很少的文件操作,这些操作已经在带有prePersist注释的方法中实现.但是,我还需要运行一些数据夹具并跳过文件操作部分作为测试的一部分.基本上我问是否可以通过实体管理器禁用所有prePersist事件而不改变实体中的任何内容.
提前致谢.
解决方法:
考虑将逻辑从实体移动到外部侦听器/订阅者:这样,您将获得更大的灵活性,并且您可以通过重用侦听器/订户本身的内部状态来关闭您描述的行为.
// ...
public function prePersist(LifecycleEventArgs $args)
{
if ($this->skipCondition($args->getEntity()) {
return;
}
$this->manipulate($args->getEntity());
}
// ...
标签:php,doctrine-orm
来源: https://codeday.me/bug/20190713/1446801.html