CFWheels通过条款找到所有组

时间:2015-09-09 02:41:11

标签: coldfusion cfwheels

在CFWheels中,我正在查看findAll()页面,并且它有一个分组选项,因为它没有“拥有子句”选项。有没有办法在CFWheels中使用findAll()使用having子句。

1 个答案:

答案 0 :(得分:0)

非常令人失望的是,即使在新版本CFWheels 1.4.2中也无法对分组数据进行动态过滤。

我发现的是this issue,这是cfwheels google group和a google group discussion下发布的一个非常老的问题。即使到今天,在having语句中使用group by的解决方法是使用cfrel dumphreys这是一个ColdFusion关系代数框架。

我建议尝试一下,它非常易于使用且写得干净利落。如果您导航到cfrel.cfc,您会发现findAll()功能与cfwheels中的原始findAll()类似(查看\ wheels \ model \ read.cfm ),但你会发现它支持having()开箱即用。

示例(cfrel having子句):

    /*  
    SQL: SELECT productId, SUM(total) AS totalSum FROM orders
         GROUP BY productId HAVING SUM(total) > ?
         ORDER BY totalSum DESC LIMIT 5
    PARAMS: [1000]
    */
    myOrdersRel = relation(datasource="cfrel")
        .select("productId,SUM(total) AS totalSum")
        .from("orders")
        .group("productId")
        .having("SUM(total) > ?", [1000])
        .order("totalSum DESC")
        .limit(5);
    query2 = rel2.query();