我正在尝试向所有用户展示他们在日期之间的点值。点值需要介于开始日期和结束日期范围之间。我遇到的问题是我有一个ActivityName
模型加入到ActivityPoints
显示类别名称。我一直都知道在连接中添加一个 where 子句来处理这样的事情,但我不确定连接关系会落在哪里。
$SalesReps = User::with('ActivityPoints', function ($query) use ($StartDate, $EndDate) {
$query->where('created_at', '>=', $StartDate);
$query->where('created_at', '<=', $EndDate);
}, 'ActivityPoints.ActivityName')
->whereIn('id', $SalesRepsData->pluck('id')->toArray())
->get();
这将返回错误:
mb_strpos() expects parameter 1 to be string, object given
显然,我可以这样做:
$SalesReps = User::with('ActivityPoints', 'ActivityPoints.ActivityName')
->whereHas('ActivityPoints', function ($query) use ($StartDate, $EndDate) {
$query->where('created_at', '>=', $StartDate);
$query->where('created_at', '<=', $EndDate);
})
->whereIn('id', $SalesRepsData->pluck('id')->toArray())
->get();
但它不会向用户显示零分(空值)。
谢谢!