1

予約用の MySQL テーブルと支払い用の別のテーブルがあり、各予約に属する 1 つ以上の (またはまったくない) 支払いがあります。2 つのテーブルには、Cake モデル内で適切な関係がセットアップされ、MySQL で確立された外部キーが 2 つをリンクします。

ビューで予約のリストを表示するとき、各予約の詳細と一緒に各予約のすべての支払いの合計を表示して、予約に対して支払われた金額と未払いの残高を確認したいと考えています。

CakePHP でこれを達成するための最良の方法は何でしょうか? 支払いモデルで afterSave() を使用して、予約モデルに保存されている合計を更新できますが、そのような方法があれば、データベースの整合性のために仮想フィールド ソリューションまたは同様のものが望ましいと思いますか?

4

1 に答える 1

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

于 2013-07-01T12:16:25.620 に答える