2011-09-20 80 views
0

例如,發票擁有多個LineItems基於cakephp中HasMany關係的基於beforeValidate回調的數據計算

創建新發票時,我們需要總結LineItem總計以設置發票總額。

這可以在afterSave回調中完成,但寧願首先驗證總計並避免使用(beforeValidate)額外的數據庫查詢。

我該如何做到最好?

+0

所有數據都在$ this->父(發票)模型中的數據,所以只需循環LineItems並應用數學。 – Chris

回答

0

只是做在你的控制器

$sum = array_sum(Set::classicExtract($this->data, 'Invoice.{n}.LineItems.price')); 

$總和將是總的發票。我假設的$這個 - 結構>數據是

$this->data['Invoice'] 
     [0] => ['LineItems'] => ['price'] 

,如果這是不對的路徑更改爲滿足您的需要或編輯您的帖子顯示的$這 - >數據

正確的結構希望它可以幫助你