2016-09-28 10 views
1

私は 'year'というフィールドを持つテーブルを持っています。私は別のグループを見つけたいので、列には多くの繰り返しがあります。私は約20行で4つの異なる年を持っており、これらの値をクエリから取得しません。代わりに返されるのは、年ではない4つの数字です(5,14,4,70)。このフィールドの値が複数ある別のテーブルの郊外フィールドでこれを使用した場合、同じコードが正常に機能しました。私はなぜこのisntの仕事を得るか分からない。cantはcakephp3のクエリからintフィールドのグループを取得します

//in view 
    echo $this->Form->input('year', ['label' => 'Year','options' => $allyears]); 

//controller 
    $allyears = $this->TimesheetDates->find('list') 
        ->select(['TimesheetDates.id', 'TimesheetDates.year']) 
        ->group(['TimesheetDates.year'])->autoFields(true) 
        ->order(['TimesheetDates.year'=> 'ASC']) 
        ->hydrate(false); 

$this->set('allyears',$allyears); 


//another controller and this code worked fine 
    $suburb = $this->Students->find('list')->where(['Students.address_suburb !=' => '','Students.student_inactive' => 0]) 
      ->select(['Students.id','Students.address_suburb']) 
      ->group(['Students.address_suburb'])->autoFields(true) 
      ->order(['Students.address_suburb' => 'ASC']) 
      ->hydrate(false); 
+1

これは '(5,14,4,70)' Idですか? – Poonam

+0

これは、グループのIDまたは年数ではありません – ajt

答えて

1

find('list')はあなたがyearによってグループ化されているとidが間にランダムに選びだしているとして、それがTimesheetDates表のidを選択する意味を持たないことを

$allyears = $this->TimesheetDates->find('list', [ 
     'keyField' => 'id', 
     'valueField' => 'year'] 
    ) 
    ->group(['year']) 
    ->order(['year'=> 'ASC']); 

注意をどのように機能するかについてdocumentationを見てみましょう同じ年を共有するすべてのレコード

関連する問題