新しいブログに引っ越しました

tomotomoSnippetは新しいブログに移動しました
https://develtips.com/

2010-01-15

[CakePHP]アソシエーションを設定したモデルのデータも削除する

Model::del()でアソシエーションを設定したモデルのデータの削除の仕方をド忘れしたのでメモ。

用意するモデル:
*Company model 企業データ
*User model 社員データ
*Post model 投稿データ


  1. // company.php  
  2.   
  3. class Company extends AppModel  
  4. {  
  5.     var hasMany = array(  
  6.         'User' => array'dependent' => true ),  
  7.         'Post' => array'dependent' => true )  
  8.     );  
  9. }  


アソシエーションを設定するときにdependentTRUEに設定してやれば、Company::del($id)を実行すれば、アソシエーション相手も削除されます。
一時アソシエーションを設定するときも同様なり。

  1. // companies_controller.php  
  2.   
  3. class Companies extends AppController  
  4. {  
  5.     function del($id) {  
  6.         $this->Company->bindModel(  
  7.             array(  
  8.             'hasMany' => array(  
  9.                 'User' => array'dependent' => true ),  
  10.                 'Post' => array'dependent' => true )  
  11.             )),  
  12.             false  
  13.         );  
  14.   
  15.         $this->Company->del($id);  
  16.     }  
  17. }  

0 件のコメント:

コメントを投稿

人気のエントリー