我有一个用于预订的MySQL表和一个单独的付款表,其中一个或多个(或没有)付款属于每个预订。这两个表在Cake模型中设置了适当的关系,在MySQL中建立了外键,将两者连接在一起。
在视图中显示预订列表时,我想显示每个预订的所有付款以及每个预订的详细信息,以便我可以看到预订已支付的金额以及剩余的余额。付钱。
在CakePHP中实现这一目标的最佳方法是什么?我可以在支付模型中使用afterSave()来更新存储在预订模型中的总数,但我认为如果有这样的方式,虚拟现场解决方案或类似的东西会更适合数据库完整性吗?
答案 0 :(得分: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