Invoices テーブルと LineItems テーブルがあります。index アクションで請求書のリストを取得したときに、請求書の合計を返すことができるようにしたいと考えています。したがって、Invoice、LineItems、および LineItems.price フィールドの合計を Total として返したいと思います。
コントローラーの現在のインデックス コードは、デフォルトで生成されます。
public function index()
{
$this->paginate = [
'contain' => ['Clients', 'Users', 'LineItems']
];
$this->set('invoices', $this->paginate($this->Invoices));
$this->set('_serialize', ['invoices']);
}
マップを作成し、この関連付けられたアイテムを減らして合計を取得する必要がありますか、それとも選択を拡張して追加のフィールドを含めるより良い方法がありますか? 選択を追加する方法はわかりましたが、追加フィールドとして追加する方法はわかりませんでした。LineItems を上書きすると、他のデータではなく合計になります。
このインスタンスで関連付けられたデータに対してマップを削減する方法についての指針はありますか、それともより良い方法がありますか?