| 28件目(121件中) |

レコード削除時に関連レコードも削除する

固定リンク:#0000000096   投稿者:ZiSTA 日時:2008-12-31 10:44:26   コメント( 0

レコード削除時にアソシエーションで設定した関連レコードを再起的に削除したい時は、アソシエーションの定義の中でdependentキーをtrueにセットしておきます。


関連レコードの削除される時は1レコードずつmodel>delete()メソッドが実行されます。model>delete()メソッドは関連レコード1つづつ削除のSQLが発行され、関連モデルのbeforeDeleteやafterDeleteのコールバックもつど実行されます。


アソシエーションの定義の中でexclusiveキーをtrueにセットした場合は、関連レコードを削除する時にmodel>delete()メソッドではなく、model>deleteAll()メソッドが使われます。model>deleteAll()は関連レコードを1つのSQLで削除し、関連モデルのコールバックは実行されませせん。exclusiveキーはコードバックの利用がないと明確な場合で、少しでも速度を速くしたい時に使うと考えられます。

また、アソシエーションの設定に関わらず関連レコードの削除を行ないたくない場合には、model->delete(id,false)のようにdeleteメソッドの第2引数をfalseにします。

 

コメント

| 28件目(121件中) |
↑ ページトップ