Как выполнить операцию sum (sum a field) в ассоциированной таблице модели с помощью cakephp 3.2
I want to sum up a field in cakephp 3.2. But the field is present in hasOne model association. I want to do it in the bind query . I have a order table and i am doing model bind with collection table . Here i want to sum up all the due_amount in collections table I have tried but its not working. Please check my code,Is there any thing wrong with it.? $this->Orders->hasOne('Collections', [ 'className' => 'Collections', 'foreignKey' => 'order_id', 'strategy' => 'select', 'conditions' => function (\Cake\Database\Expression\QueryExpression $exp, \Cake\ORM\Query $query) { $query->order(['Collections.id' => 'ASC']); return []; } ]); $get_total_sales = $this->Orders->find('all')->where($condition)->select(['id', 'region_id', 'net_total'])->contain(['Collections' => ['queryBuilder' => function ($q) { return $q->select(['id', 'order_id', 'total_sale_amount', 'due_amount']); }]])->order(['Orders.due_date DESC']); $res2 = $get_total_sales->select(['total_due' =>$get_total_sales->func()->sum('collection.due_amount')])->first(); echo $due = $res2->total_due;//its showing column not find error. Is it working in order table instead of collections table? How can i do it for collection table using the $get_total_sales listing results? Below some out put [ { "id": 40, "region_id": 2, "net_total": 2899.12, "collection": { "id": 182, "order_id": 40, "total_sale_amount": 2899.12, "due_amount": 1990 }, }, { "id": 38, "region_id": 2, "net_total": 110, "collection": { "id": 181, "order_id": 38, "total_sale_amount": 110, "due_amount": 10 }, }, { "id": 39, "region_id": 2, "net_total": 16670, "collection": { "id": 190, "order_id": 39, "total_sale_amount": 16670, "due_amount": 16630.99 }, }, Here i want to sum up all the due_amount in collections table Thank you
Что я уже пробовал:
$res2 = $get_total_sales-и GT;выберите(['total_due' =&ГТ;$get_total_sales-&ГТ;кнопку func()-&ГТ;взыскание сумм ('.due_amount')])-&ГТ;первый();