【CakePHP】モデルのリレーションを外す
hasOne,hasMany,belongsTo,hasAndBelongsToManyのリレーションを簡単に実装できるCakePHPのモデルですが一時的にリレーションデータが不要になった場合の外し方です。
以下の様なモデルがあったとします。
<?php class User extends AppModel { var $name = 'User'; var $hasMany = array( 'Comment' => array( 'className' => 'Comment', 'conditions' => 'Comment.moderated = 1', 'order' => 'Comment.created DESC', 'foreignKey' => 'user_id', ) ); } ?>
このモデルからリレーションを外すにはfindする前に以下の処理をします。
this->User->unbindModel( array( 'hasMany' => array('Comment') ) );
データ量が多く処理が重くなる場合や不要なときなどはリレーションを外したほうがいいかもしれませんね。