1

我有一个用于预订的 MySQL 表和一个用于付款的单独表,每个预订都有一个或多个(或没有)付款。这两个表在 Cake 模型中设置了适当的关系,并在 MySQL 中建立了外键以将两者链接在一起。

在视图中显示预订列表时,我想显示每个预订的所有付款总额以及每个预订的详细信息,以便我可以查看已针对预订支付的金额以及剩余的余额。

在 CakePHP 中实现这一目标的最佳方法是什么?我可以在支付模型中使用 afterSave() 来更新存储在预订模型中的总数,但我认为如果有这样的方法,虚拟字段解决方案或类似的东西对于数据库完整性更可取?

4

1 回答 1

1

由于付款属于预订,因此预订查询应返回相关付款的数组。使用预订模型中的 afterFind 回调函数将支付总额相加并分配给预订数据结构中的新元素。

$results[0][$this->alias]['total_payments'] += $results[0][$this->alias]['Payment']['payment_amount'];

http://book.cakephp.org/2.0/en/models/callback-methods.html#afterfind

于 2013-07-01T12:16:25.620 回答