I'm trying to show all users with their point values between dates. The point values need to between a start date and end date range. The problem I'm having is I have a ActivityName
model that joins to the ActivityPoints
to show the category name. I've always known to add a where clause within the join for something like this but I'm not sure where the joining relationship will fall.
$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();
This returns the error: mb_strpos() expects parameter 1 to be string, object given
Obviously, I can do something like:
$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();
but it won't show the users with zero points (null values).
Thanks!
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire