Doctrine - PHP |如何覆盖EntityRepository存在的方法?

时间:2015-03-30 11:52:52

标签: php doctrine-orm

我为我的实体创建了一个超类:

class superclass{
   /** @column(type="string", length=1,
    * options={"default":"c"})
   */
   protected $status;

  /** ...more things **/

}

下一步是创建我自己的存储库,因此它取代了EntityRepository。目标是根据以下条件设置状态值:

  • 删除实体 - 'd'
  • 实体已修改 - 'm'
  • 创建实体 - 'c'

所以我需要覆盖EntityRepository中的方法:find(),findBy(),delete(),...

我没有找到任何相关的工作。这不是个好主意吗?

任何线索? 提前致谢

2 个答案:

答案 0 :(得分:0)

存在具有类似数据流的项目。 https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/softdeleteable.md

使用简单的注释,它可以创建和管理已删除的字段,并使用默认的EntityManager方法提取未删除的字段。

答案 1 :(得分:0)

您可以为Doctrine的操作创建自己的过滤器:

http://doctrine-orm.readthedocs.org/en/latest/reference/working-with-associations.html