php - Symfony2 Doctrine - 删除或隐藏关系以保持一致性?

标签 php symfony doctrine-orm

我有一个包含很多关系的 Symfony2 项目,我希望数据集在任何时候都保持一致。 例如,销售链接到产品。

如果用户决定删除商品,但商品与销售 Hook ,如何保持销售对象一致?

使用纯 SQL,我会添加一个“隐藏”列,具有 RESTRICT 关系。 如果没有链接到产品的销售,则删除该产品。 如果有一个或多个销售,产品不会被删除,但隐藏字段设置为 true。

在用户界面中,SQL 请求将是

     SELECT * FROM product WHERE hidden = FALSE

这是处理这个问题的正确方法吗? 你有什么想法如何在 Symfony 2 中有类似的行为吗?

最佳答案

您可以使用 Doctrine's annotations帮助您始终保持数据的一致性。例如,当销售被删除时,它也会继续删除产品。

如果您使用的是一对一或一对多关系,您可以将 orphanRemoval 注释为 true:

orphanRemoval: Boolean that specifies if orphans, inverse OneToOne entities that are not connected to any owning instance, should be removed by Doctrine. Defaults to false.

参见 here获取更多信息。

关于php - Symfony2 Doctrine - 删除或隐藏关系以保持一致性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089235/

相关文章:

symfony - 如何优雅地登录 Doctrine2 实体

php - 如何在 symfony2 中设置创建和更新日期?

php - 嵌入式表单生成数组而不是 ArrayCollection

php - 使用 composer 安装 PEAR 扩展 HTTP_Request2

php - 粘贴到文本区域的文本未插入到数据库中

Symfony警告: rename (. ./app/cache/dev,../app/cache/dev_old): Access Denied .(代码:5)

php - 如何从标记为 monolog.processor 的服务访问路由参数?

php - Yii2 批量删除操作发生Internal Server Error

php - 转义引号php和mysql

doctrine-orm - 在Doctrine2中获取实体代理