【问题标题】:Using an associated models columns for virtualFields?为 virtualFields 使用关联的模型列?
【发布时间】:2011-08-09 16:28:09
【问题描述】:

我有一个 User 模型和一个 Order 模型。用户 hasMany 订单。

orders 表有一个 user_id 列和一个 total 列。

我想在 User 模型上有一个virtulField,它是与该用户关联的订单数量的计数。

我还想在 User 上有一个 virtualField,它是所有总数的总和。

我能够让它工作的唯一方法是这样的:

public $virtualFields = array(
    'total_orders' => '(SELECT COUNT(orders.user_id) FROM orders WHERE orders.user_id = User.id AND orders.status != "void" GROUP BY orders.user_id)',
    'total_sales' => '(SELECT SUM(orders.total) FROM orders WHERE orders.user_id = User.id AND orders.status != "void" GROUP BY orders.user_id)',
);

我不确定这是否是最好的解决方案,有没有更好的方法?

【问题讨论】:

    标签: mysql cakephp cakephp-1.3


    【解决方案1】:

    对于总订单:使用 counterCache 和 counterScope:http://book.cakephp.org/view/1033/counterCache-Cache-your-count

    你仍然需要 virtualField 来计算总销售额。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多