2011-10-20 8 views
0

私はユーザーとダッシュボードを持っています。彼らはどちらもお互いにHABTM関係を持っています。どのようにユーザーデータを使用せずに、すべてのユーザーのダッシュボードを取得するだけですか?CakePHP - 関連するモデルデータを見つけるだけ。

私はこれを試みたが、それは同様にUserモデルを返します。

$this->User->id = $this->Auth->user('id'); 
$this->User->find('all', array('contain' => 'Dashboard')); 

答えて

0

あなたが唯一のidフィールドと他のどれを取得するようにあなたがfieldsオプションを設定することができます。 (おそらく全くのフィールドをフェッチしないようにそれを設定することはできません。)

$this->User->find(
    'all', 
    array(
     'contain' => 'Dashboard', 
     'fields' => 'User.id' 
    ) 
); 
+0

ありがとう、ありがとう。 – BadHorsie

0

ではなく、ユーザーIDの条件とダッシュボードモデルを使用します。私はそれが動作するはずだと思う

$this->User->Dashboard->bindModel(array('hasMany' => array('DashboardsUsers'))); 
$this->User->Dashboard->find('all', array(
     'conditions' => array('User.id' => $this->Auth->user('id')), 
     'recursive' => -1 
)); 

:)

+0

dashboardsテーブルに 'user_id'カラムがないため、動作しません。彼らには、 'id、dashboard_id、user_id'を持つ' dashboards_users'というジョインテーブルがあります – BadHorsie

+0

あなたのアソシエーションを正しく設定していればうまくいくはずです... http://book.cakephp.org/view/1044/hasAndBelongsToMany-HABTM – AlexBrand

+0

私はbindModel()メソッドが不足していることに気付きました。これがうまくいくかどうか教えてください。 – AlexBrand

関連する問題