Это должно работать. Из документации второй аргумент selectRaw()
является необязательным массивом привязок.
Тем не менее, вы можете достичь того, что вы ищете, с комбинацией select()
и DB::raw()
$leads = DB::table('users')
->select('users.*', DB::raw('count(wishlists.id) as wishlists_count'))
->leftJoin('wishlists', 'users.id', '=', 'wishlists.uid')
->where('users.status',1)
->groupBy('wishlists.uid')
->get();
Редактировать: вышеуказанный ответ неверен. Я бы рассмотрел следующие альтернативы.
Либо вы можете достичь этого с помощью подзапроса с чем-то вроде следующего:
$wishlist = Wishlist::select(DB::raw('count(wishlists.id)'))
->whereColumn('uid', 'users.id')
->getQuery();
$users = User::select('users.*')
->selectSub($wishlist, 'wishlists_count')
->get();
Или гораздо более простым способом (при условии, что у вас настроены отношения wishlists
)
Users::withCount('wishlists')->get();
foreach($users as $user) {
echo $user->wishlists_count;
}