2016-05-23 4 views
1

Hellow, я хочу использовать группу внутри, содержащуюся в cakephp. В следующем случае я хочу взять только отличную организацию в пределах organizationUser массива ..Группа Внутри содержат 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+ предлагает нечто вроде того, что вы делаете, чтобы сделать поле, отличное от содержащегося. Так что лучше попробовать следующий .. Заменить:

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

По

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

, которые могли бы работать для вас.

+0

просто ничего себе .. этот трюк работал отлично .. многое. –

+0

Продолжайте делать man .. –

+1

Ну, альтернативный подход с лучшим контролем будет заключаться в использовании 'joins' с построителем запросов ... Я бы опубликовал новый ответ, но поскольку проблема была решена в cake 3.0, я не думаю он заслуживает большего, чем комментарий к этому умному решению. – Fr0zenFyr

Смежные вопросы