gpt4 book ai didi

php - Laravel selectRaw 省略附加列

转载 作者:搜寻专家 更新时间:2023-10-30 22:37:13 25 4
gpt4 key购买 nike

当我尝试使用原始 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

最佳答案

我自己刚刚找到答案,您需要包含附加列使用的列才能使其输出

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

关于php - Laravel selectRaw 省略附加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36590666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com