2012-03-28 10 views
0

出力が以下のようなIve a HABTMの関係では、cakephpには "friend.id"と "friend.company_name"という名前の "list" 「ユーザー」を除外します。HABTM find、結果をフィルタリングする方法

Iveはこれを行う方法を研究していましたが、それを動作させることはできませんでした。

ユーザーのコントローラーの「検索方法」。私は収容可能な行動を使用する必要があると思うが、何をすべきかわからない。 "友人"の結果を得るために管理されたiveは2つのフィールドのみを表示しますが、私は "ユーザー"の結果を取り除く必要があります。私はこれをどのようにして行うのですか?

この関係は、ユーザーモデルファイルと同様に定義されます。

var $hasAndBelongsToMany = array(
'Friend' => array(
    'joinTable' => 'retailerrelationships', 
    'className' => 'User', 
    'foreignKey' => 'retailer_id', 
    'associationForeignKey' => 'supplier_id' 
) 
    ); 

ユーザーコントローラにおけるユーザーの行動:

$this->User->Behaviors->attach('Containable'); 

$users=$this->User->find('all',array('conditions'=>array('User.id'=>$this->Auth->user('id')),'contain'=>array('Friend.id','Friend.company_name')));   
     $this->set('users' ,$users); 

デバッグ出力

Array 
(
    [0] => Array 
     (
      [User] => Array 
       (
        [id] => 104 
        [username] => admin      
       ) 

      [Friend] => Array 
       (
        [0] => Array 
         (
          [id] => 107 
          [company_name] => carskitchens 
          [Retailerrelationship] => Array 
           (
            [id] => 12 
            [retailer_id] => 104 
            [supplier_id] => 107 
            [created] => 2012-03-28 10:14:23 
            [modified] => 2012-03-28 10:14:23 
           ) 

         ) 

        [1] => Array 
         (
          [id] => 112 
          [company_name] => mr manufacturer 
          [Retailerrelationship] => Array 
           (
            [id] => 13 
            [retailer_id] => 104 
            [supplier_id] => 112 
            [created] => 2012-03-28 11:26:52 
            [modified] => 2012-03-28 11:26:52 
           ) 

         ) 

       ) 

     ) 

) 

答えて

1

あなたはSetクラスをご覧ください。

それは私のために働くのdidntこの

Set::combine($results, '{n}.Friend.id', '{n}.Friend.company_name'); 
+0

をお試しください:( –

+0

あなたは、より詳細に入ることはできますか?まず、私が代わりに '$のusers'のVARの' $のresults'を使用していました。また、あなたは割り当てる必要がありますそれは '$ options = Set :: combine ...'など出力をデバッグしましたか? – jeremyharris

+0

実際にあなたは私の悪いところでした。 –

関連する問題