2016-04-13 20 views
1

Neden raw sql kullanmaya çalıştığımda bu laravel/eloquent/db eklenmiş sütunlarımdan yararlanır?Laravel selectRaw ekli sütunları atar

GroupBy'yi kullanmanın ve eklenmiş sütunlarımı tutabilen eloquent kullanarak sonucu bir araya getirmenin başka bir yolu var mı?

Ben benim depo

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(); 
} 

verileri nasıl getirdiğini anlatır benim modeli sınıfında eklenmiş bir sütun

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'); 
    } 
} 

budur sahip Ama aynı zamanda benim eklenen sütun döndürür olmadığını kontrol çalıştığınızda, sadece boş

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

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

Sonucu dönmek:

null 
null 
null 
null 
null 
null 

cevap

1

sadece kendimi cevabını öğrendim, bunu çıkış sırayla eklenir sütun kullanımı için için sütunlar dahil gereken

UnitTime::selectRaw('unit_id, work_tag, action_tag, employee_id, MAX(updated_at) as updated_at')