例如。 Invoice hasMany LineItems
创建新发票时,我们需要总结LineItem总计,以便设置发票总额。
这可以在afterSave回调中完成,但更愿意首先验证总数并避免使用(beforeValidate)进行额外的数据库查询。
我最好如何做到这一点?
答案 0 :(得分:0)
只需在您的控制器中执行
$sum = array_sum(Set::classicExtract($this->data, 'Invoice.{n}.LineItems.price'));
$ sum将是您的发票总额。我假设$ this->数据的结构为
$this->data['Invoice']
[0] => ['LineItems'] => ['price']
如果这不正确,请更改路径以满足您的需求或编辑您的帖子以显示$ this->数据的正确结构
希望它可以帮到你