2014-03-30 54 views
0

工作我运行下面的查询CakePHP中:组不是在CakePHP中

$options = array('conditions' => array('Patient.' . $this->Patient->primaryKey => $id),array('recursive'=>2,'group'=>array('group_id'))); 
$this->set('patient', $this->Patient->PatientTest->find('all', $options)); 

但我group根据需要不工作。它给我的输出如下:

Array 
(
    [0] => Array 
     (
      [PatientTest] => Array 
       (
        [patient_id] => 2 
        [test_id] => 1 
        [date] => 2014-03-27 17:44:17 
        [result] => 55 
        [group_id] => 1 
       ) 

      [Patient] => Array 
       (
        [id] => 2 
        [name] => Test Patient 
        [age] => 44 
        [gender] => 0 
        [email] => [email protected] 
        [contact] => 789654123 
        [date] => 0000-00-00 00:00:00 
       ) 

      [Test] => Array 
       (
        [id] => 1 
        [name] => Hb 
        [group_id] => 1 
        [normal] => 12 - 16 gma% 
       ) 

      [Group] => Array 
       (
        [id] => 1 
        [name] => Haematology 
       ) 

     ) 

    [1] => Array 
     (
      [PatientTest] => Array 
       (
        [patient_id] => 2 
        [test_id] => 2 
        [date] => 2014-03-27 17:44:17 
        [result] => 55 
        [group_id] => 1 
       ) 

      [Patient] => Array 
       (
        [id] => 2 
        [name] => Test Patient 
        [age] => 44 
        [gender] => 0 
        [email] => [email protected] 
        [contact] => 789654123 
        [date] => 0000-00-00 00:00:00 
       ) 

      [Test] => Array 
       (
        [id] => 2 
        [name] => PCV 
        [group_id] => 1 
        [normal] => 35-50% 
       ) 

      [Group] => Array 
       (
        [id] => 1 
        [name] => Haematology 
       ) 

     ) 
) 

我需要他们GROUP BY要么group_idGroup.id。我不能找到为什么它不是分组。

回答

3

$options = array 
(
    'conditions' => array 
    (
     'Patient.' . $this->Patient->primaryKey => $id 
    ),   
    array(
     'recursive'=>2, 
     'group'=>array('group_id') 
    ) 
); 

$options = array 
(
    'conditions' => array 
    (
     'Patient.' . $this->Patient->primaryKey => $id 
    ),   
    'recursive'=>2, 
    'group'=>array('group_id') 
); 

递归,条件和组都处于同一水平

+0

+1通知错误。但它没有根据group_id将我的结果分组:( –

+0

find()语句后得到的sql是什么? – arilia

0

单纯,温柔代码:

$groupBy = 'Patient.group_id'; 
$options = array (
     'conditions' => array 
      (
      'Patient.' . $this->Patient->primaryKey => $id 
      ), 
     'group'=>array($groupBy) 
    );