2010-11-23 6 views
0

再帰的レベル3のデータを取得したい。問題は、8つのリンクされたモデルをすべて追加することだが、データモデルが3つしかないことが問題である。いくつかのモデルを無視する方法はありますか? useModel( 'Model1'、 'Model2')のようなもの?CakePHP:データの取得中にモデルを指定する方法は?

$this->Post->find('all', array(
    'contain' => array(
     'Tag', 
     'Comment' => array(
      'User') 
      ) 
     ) 
    ); 

また、これに連動して、それはあなたのAppModelに-1に$再帰を設定するには良いことだ:

+0

クイックヒント:マニュアルでアンバインドを探します。 – c0rnh0li0

+0

バインドまたはバインド解除は、最初のレベルの再帰的な場合にのみ機能します。 – Sharj

答えて

5

それはあなたがこのような条件を見つけるに指定することができますContainable行動を、使用することをお勧めします。

class AppModel extends Model { 
    var $recursive = -1; 
    var $actsAs = array('Containable'); 
} 

これにより、必要な細かい制御が可能になり、時間の経過とともにモデルに多くの関係が追加されるため、クエリが膨らむことがなくなります。

+0

$ recursiveを-1に設定する必要はありません。常に存在することを忘れ、常にContainableを使用します。 – Leo

関連する問題