首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel selectRaw省略追加的列

Laravel selectRaw省略追加的列
EN

Stack Overflow用户
提问于 2016-04-13 14:50:28
回答 1查看 949关注 0票数 1

当我尝试使用原始sql时,为什么laravel/eloquent/db省略了附加的列?

有没有其他方法可以使用groupBy并使用eloquent聚合结果,从而保留我追加的列?

我的模型类中有一个附加的列

代码语言:javascript
复制
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');
    }
}

这就是我从我的存储库获取数据的方式

代码语言:javascript
复制
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

代码语言:javascript
复制
$members_without_task = $team_repo->getTeamMembersWithoutTask($team->id);

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

结果:

代码语言:javascript
复制
null
null
null
null
null
null
EN

回答 1

Stack Overflow用户

发布于 2016-04-13 15:24:43

我自己刚刚找到了答案,您需要包括追加的列使用的列,以便它具有其输出

代码语言:javascript
复制
UnitTime::selectRaw('unit_id, work_tag, action_tag, employee_id, MAX(updated_at) as updated_at')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36590666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档