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

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

2010-01-15

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

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

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


// company.php

class Company extends AppModel
{
var hasMany = array(
'User' => array( 'dependent' => true ),
'Post' => array( 'dependent' => true )
);
}


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

// companies_controller.php

class Companies extends AppController
{
function del($id) {
$this->Company->bindModel(
array(
'hasMany' => array(
'User' => array( 'dependent' => true ),
'Post' => array( 'dependent' => true )
)),
false
);

$this->Company->del($id);
}
}

0 件のコメント:

コメントを投稿

人気のエントリー