当我尝试使用原始sql时,为什么laravel/eloquent/db省略了附加的列?
有没有其他方法可以使用groupBy并使用eloquent聚合结果,从而保留我追加的列?
我的模型类中有一个附加的列
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');
}
}这就是我从我的存储库获取数据的方式
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();
}但是,当我尝试检查是否也返回追加的列时,它只返回null
$members_without_task = $team_repo->getTeamMembersWithoutTask($team->id);
foreach ($members_without_task as $member) {
var_dump($member->work);
}结果:
null
null
null
null
null
null发布于 2016-04-13 15:24:43
我自己刚刚找到了答案,您需要包括追加的列使用的列,以便它具有其输出
UnitTime::selectRaw('unit_id, work_tag, action_tag, employee_id, MAX(updated_at) as updated_at')https://stackoverflow.com/questions/36590666
复制相似问题