【发布时间】: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