- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个实体 File
,它位于 oneToMany
关系的拥有方,Document
位于相反的一侧。存在级联删除,因此当 Document
被删除时,所有相关的 File
实体也被删除。
现在我有一个实体监听器,它带有 File
的 postRemove()
方法。但是事件只会在我直接删除实体时触发,而不是在通过级联删除完成时触发。
是否有解决方案可以通过级联删除来触发 postRemove 事件?
一个解决方案是将 postRemove 事件也放到 Document 中,但这不是很干净,因为文档不应该关心 File postRemove 内容。或者我可以用 Document 中的 postRemove 逐个删除文件实体来替换级联删除。但我想保留当前的级联。
那么,有没有办法在级联中触发事件?
这是我当前的事件代码:
文件.orm.yml
AppBundle\Entity\File:
type: entity
entityListeners:
AppBundle\EventListener\FileListener:
postRemove: [postRemove]
监听类
class FileListener {
public function postRemove(File $file) {
dump($file); die();
}
}
服务.yml
file_listener:
class: AppBundle\EventListener\FileListener
arguments: ['%path_image%', '%path_thumb%', '%path_preview%']
tags:
- { name: doctrine.orm.entity_listener }
- { name: doctrine.orm.entity_listener, entity_manager: custom }
最佳答案
好的,我解决了用 cascade: [remove]
替换 onDelete: cascade
的问题。但是cascade: [remove]
需要在反面!所以不在文件中,而是在文档中。
这个解决方案的缺点是,级联操作不是由数据库完成的,而是由 Doctrine 本身完成的,这意味着内存负载很重。对于我的结构来说,只有一个小集合是可以的,但对于更大的团体应该考虑到这一点。
关于symfony - 在 symfony 中删除级联的 Doctrine postRemove 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43380090/
我从规范中找到了以下信息。但对于不是英语母语的我来说还不够清楚。 The PostPersist and PostRemove callback methods are invoked for an
我有这样的东西: public function postRemove(LifecycleEventArgs $args) { $entity = $args->getObject();
我有一个实体 category 和另一个实体 article 加入 cat_id 并级联删除。 类别 实体是 softDeleteable 当我尝试删除一个类别时,默认行为是删除相关文章,因为它们是级
引用Symfony 2关于文件上传的Cookbook,我尝试使用Doctrine的@PostRemove事件监听器在文件从数据库中删除后删除文件。 文档.php /** @Entity */ clas
这个问题在我脑海中盘旋了一段时间,现在我需要一些关于 preRemove/postRemove 事件的建议,因为我将执行的查询基本上是 DELETE 但这应该也适用于 prePersist/postP
我有一个实体 File,它位于 oneToMany 关系的拥有方,Document 位于相反的一侧。存在级联删除,因此当 Document 被删除时,所有相关的 File 实体也被删除。 现在我有一个
我是一名优秀的程序员,十分优秀!