我只想雄辩地进行“简单”查询。
好的,我有3个模型。 (User
,Project
和TimeEntries
)。
用户可以从事许多项目。他可以进行一些时间输入,时间输入属于一个项目。
因此,问题是:我有一个用户ID数组。我想做一个雄辩的查询,其中包含一个User模型集合,在这个集合中,我希望他参与的所有项目以及小时总数(time_entries表中“ hours”列的总和)>
User.php
public function projects()
{
return $this->belongsToMany('App\Model\Project', 'time_entries');
}
public function time_entries()
{
return $this->hasMany('App\Model\TimeEntries');
}
Project.php
public function timeEntries()
{
return $this->hasMany('App\Model\TimeEntries');
}
public function users()
{
return $this->belongsToMany(User::class, 'time_entries');
}
TimeEntries.php
public function user()
{
return $this->belongsTo( 'App\Model\User' );
}
public function project()
{
return $this->belongsTo( 'App\Model\Project','project_id' );
}
我已经做到了,但是没有用,我收集了一些User的作品集,其中有他参与过的项目,但不是小时数。 (whereBetween只是我想要此间隔中的所有时间条目。)
$t = User::with(['projects', 'time_entries' => function ($query) use ($request) {
$query->whereBetween('spent_on', [($request->input('debut')), ($request->input('fin'))]);
}])->find($array_of_id);