在Doctrine中过滤

时间:2009-08-19 14:36:40

标签: php nhibernate orm doctrine filter

nHibernate有一个很棒的功能叫做过滤器,所以我可以为我的应用程序全局创建标准。我正在用PHP创建一个项目,我需要使用ORM,我想知道Doctrine是否具有管理查询条件的类似功能。

感谢

2 个答案:

答案 0 :(得分:0)

Doctrine 2.2具有filter system,允许开发人员将SQL添加到查询的条件子句中,无论SQL生成的位置如何(例如,从DQL查询或通过加载关联实体)。

过滤器功能适用于SQL级别。是否在Persister中,延迟加载期间,在额外的延迟集合中或从DQL生成SQL查询。每次系统迭代所有启用的过滤器时,添加新的SQL部件作为过滤器返回。

通过将SQL添加到查询的条件子句中,过滤器系统过滤掉属于SQL结果集级别的实体的行。这意味着过滤的实体永远不会被水合(这可能很昂贵)。

答案 1 :(得分:-1)

我认为您正在寻找的是Doctrine Query Hooks。

有许多用于preUpdate,preSave,preCreate,postCreate,postUpdate,postSave,preSelect等等的钩子。

希望这有帮助。