2016-04-13 7 views
1

なぜraw SQLを使用しようとすると、laravel/eloquent/dbが追加された列を省略しますか?Laravel selectRawは追加された列を省略します

groupByを使用し、追加された列を保持できる雄弁を使用して結果を集計する他の方法はありますか?

私は、これは私が私のリポジトリ

public function getTeamMembersWithoutTask($team_id) 
{ 
    $assigned_units = $this->getTeamAssignedUnits($team_id); 
    $ids = $assigned_units->pluck('employee_id'); 

    return UnitTime::selectRaw('unit_id, employee_id, MAX(updated_at) as updated_at') 
     ->where('team_id', $team_id) 
     ->whereNotIn('employee_id', $ids) 
     ->groupBy('employee_id') 
     ->orderBy('updated_at', 'asc') 
     ->get(); 
} 

からデータをフェッチする方法であるが、私はまた私の追加の列を返すかどうかを確認しようとすると、私のモデルクラスの追加列

public function getWorkAttribute() 
{ 
    switch ($this->work_tag) { 
     case self::WORK_CREATIVE: 
      return trans('unit_time.work.creative'); 
     case self::WORK_DEV: 
      return trans('unit_time.work.dev'); 
     case self::WORK_QA: 
      return trans('unit_time.work.qa'); 
     case self::WORK_REVIEW: 
      return trans('unit_time.work.review'); 
    } 
} 

を持っていますそれだけでヌル

$members_without_task = $team_repo->getTeamMembersWithoutTask($team->id); 

foreach ($members_without_task as $member) { 
    var_dump($member->work); 
} 

の検索結果を返します。

null 
null 
null 
null 
null 
null 

答えて

1

私はちょうど自分自身を答えを見つけ、あなたはそれがその出力順序で追加の列してご使用の列を含める必要があり

UnitTime::selectRaw('unit_id, work_tag, action_tag, employee_id, MAX(updated_at) as updated_at') 
関連する問題