SQL计算作为Doctrine 1.2中的只读字段

时间:2011-08-03 11:54:41

标签: php mysql doctrine calculated-columns

考虑以下数据模式:

Employee:
  columns:
    name: string(255)
    activeSince: date
    activeUntil: date

我在一个系统中工作,最终用户通过选择字段,比较器和值的过程动态构建查询。我希望此表具有计算字段active,如果当前日期在两个日期字段之间,则该字段为真。

当在PHP中实现getter函数是一个选项时,这当然很容易,但不是因为

  • 我需要使用该字段过滤数据库
  • 该表包含大量的记录,并选择所有这些记录并让PHP在之后进行过滤太重了。过滤需要在数据库服务器上完成。

我知道可以通过在PHP中自定义DQL来完成,但这也不是一个选项,因为最终用户无法编写其他代码。理想情况下,我希望YAML结构为

Employee:
  columns:
    name: string(255)
    activeSince: date
    activeUntil: date
    active: calculated
       type: boolean
       dql: CURDATE() BETWEEN activeSince AND activeUntil

CURDATE()和BETWEEN是MySQL函数,它们在DQL中应该可以正常工作。

Doctrine 1.2中是否还有这样的内容?

0 个答案:

没有答案