【发布时间】:2018-11-28 23:33:49
【问题描述】:
我有 3 个模型 Job、Diary、Resource。 Jobs 与 Diary 有关系,Diary 与 Resource 有关系。 我想获取与作业关联的所有资源并使用
public function labourers()
{
return $this->hasManyThrough(Resource::class, Diary::class, 'job_id');
}
在我的工作课上。
现在我想将结果按用户分组,用户的 user_id 是 Resource 中的一列,然后显示总小时数。
这是我能得到的最接近的。
$job = Job::where('job_number', 3007)->first();
$labour = $job->labourers()->get();
$results = $labour->groupBy('user_id');
echo $results;
foreach($results as $result)
{
$hours = $result->sum('hours');
echo $result[0]->user_id." - ";
echo $hours.". ";
}
这让我得到了 user_id 和小时总和,但我无法通过在资源模型上设置的关系访问用户名
public function user()
{
return $this->belongsTo(User::class);
}
与
$result->user->name;
这会产生
此集合实例上不存在属性 [用户]。
如何返回允许我访问用户名和小时总和的集合。
【问题讨论】:
-
试试
$result[0]->user->name。
标签: database laravel laravel-5 eloquent