1

だから私は3つのモデルを持っています:

コーチ:var $ hasAndBelongsToMany = array( "Tour")

ツアー:var $ hasAndBelongsToMany = array( "Coach")

CoachesTour:var $ belongsTo = array( "Tour"、 "Coach")

CoachとTourの間にはHABTMの関連付けがあり、結合モデルとしてCoachesTourを使用する必要があります。

足場を使用しています。ツアーを変更するときに、新しいCoachesTourを追加すると、CoachesTourのbeforeSaveメソッドが呼び出されません。結合モデルを使用するのではなく、結合モデルのレコードがSQLステートメントとして挿入されているように見えます。

ここで何かが足りませんか?

ありがとう、

4

1 に答える 1

0

データの保存に saveAll を使用する場合、 beforeSave コールバックは呼び出されません。saveAll 関数を上書きする必要があります。

たとえば、あなたのモデルでは:

public function saveAll($data, $options = array()) {
            /*
            your code you want execute before saving...
            */
    parent::saveAll($data, $options);
}

他の保存方法 (saveMany、saveAssociated、save) では、保存前に beforeSave コールバックがトリガーされることを知っておく必要があります。ただし、saveAll の場合はトリガーではなく、保存する前にコードを実行する場合は、モデルで上書きできます。

于 2012-08-19T11:15:13.770 に答える