Я хочу сделать несколько подсчетов в отношениях. Я могу сделать 1, используя метод withCount и передав ему замыкание с условием, подобным следующему:
$subscribedAudits = Audit::whereHas('users', function ($query) {
$query->whereIn('user_id', [Auth::user()->id])->where('approved', 1);
})->withCount(['users' => function($query) {
$query->where('approved', 0);
}])->with(['users'])->get();
Это создает поле для результата с именем users_count
с числом пользователей, где утверждено = 0. Это ожидаемый результат.
Теперь я хочу подсчитать другое поле в таблице пользователей, но я не уверен, как включить это в запрос Eloquent. Я попробовал следующее:
$subscribedAudits = Audit::whereHas('users', function ($query) {
$query->whereIn('user_id', [Auth::user()->id])->where('approved', 1);
})->withCount(['users' => function($query) {
$query->where('approved', 0);
}])->withCount(['users' => function($query) {
$query->where('viewed', 0);
}])->with(['users'])->get();
Это не сработает, поскольку он может вернуть только 1 атрибут с именем users_count
.
Есть ли способ обойти это без выполнения другого запроса?