2016-05-23 7 views
1

こんにちは、私はcakephpに含まれているグループを使いたいと思います。私はorganizationUser配列内のみ明確な組織を取りたい、次の場合...グループBy within cakephp

  $options = array(
     'conditions' => array('User.' .$this->User->primaryKey => $userId), 
     'contain' => array(
         'OrganizationUser'=>array(
          'conditions'=>['status'=>3], 
          'group'=> array('OrganizationUser.organization_id')), 
         'OrganizationUser.Organization', 
         'OrganizationUser.Organization.Noticeboard', 
         'OrganizationUser.Organization.Newsboard', 
         'OrganizationUser.Organization.Noticeboard.Branch', 
        ), 
     'page'=>$page, 
     'limit'=>$limit 
     ); 



     $org = $this->User->find('all', $options); 

でしかし、これは「が見つかりません列」、と「条件」のようなエラーがOrganizationUser以内に正常に動作しているが、「グループ」は動作していない投げています私はcakephpバージョン2を使用しています。事前におねがいします。

答えて

2

私は、cakephp 2+はあなたが含んでいるフィールドを明確にするために何かを提供しているとは思わない。 ...次試してだから、より良い は交換してください:あなたのために働くかもしれない

'fields'=> array('DISTINCT OrganizationUser.organization_id') 

ことで

'group'=> array('OrganizationUser.organization_id') 

を。

+0

単純にうわー。そのトリックは完璧に働いています。 –

+0

keep going man .. –

+1

もっと良いコントロールを使った別のアプローチは、クエリービルダーで 'join 'を使うことです...私は新しい答えを投稿しますが、この問題はcake 3.0で解決されて以来、私は思いませんこの巧妙な解決策には何のコメントもありません。 – Fr0zenFyr