0

私はどういうわけか私の初心者プロジェクトで再び迷っています。離陸時間と着陸時間のあるフライトの記録を追加しています。したがって、フライトオーダーを挿入して削除するたびに(編集は別の質問です)、特定の航空機(異なるモデル)の合計機体時間を更新したいと思います。モデルで afterSave/beforeDelete 関数を使用してこれを行う必要があるか、または mysql トリガーやコントローラーなどの他の方法で行う必要があるかなど、いくつかの問題が発生しています。

私の主な問題は、afterSave() および beforeDelete 呼び出しで必要なすべての情報を収集しようとしたことですが、そこにアクセスするデータを取得する方法がわかりません。特に beforeDelete() 呼び出しでは、$this->data 配列が空になるようにつなぎ合わせているため、機体の合計時間から差し引かなければならない時間を計算できません。

したがって、私の質問の核心は、これが本当に正しい方法である場合、より一般的な性質のものです. 私の頭に浮かぶもう1つのことは、何か問題が発生した場合、機体時間に一貫性がなく、飛行記録がすでに削除されていることを恐れているという事実です。

私はストアドプロシージャまたは他の方法でそれを行うことを考えています。

これを読んでくれてどうもありがとう、そしておそらくそれを行うためのより簡単な方法のヒント。

よろしくお願いします、

cdjw

4

1 に答える 1

0

コアで counterCache がどのように機能するかを見てみましょう。これがあなたがする必要があることのように思えます。それはすべてモデルのコールバックで発生します。

コードを見て、これがhttp://api.cakephp.org/class/model#method-ModelupdateCounterCacheと呼ばれている場所を確認してください

于 2011-01-20T11:26:03.790 に答える