У меня проблема с подсчетом количества устройств, на которых guid
не является нулевым
Нужно получить все магазины по пользователю user_id
а затем посчитать все устройства, где guid
не является нулевым
$shops = Shop::with('devices')->where('user_id', $userId)->get();
$deviceActive = $shops->reduce(function ($carry, $item) {
return $carry + $item->devices->whereNotNull('guid')->count();
});
dd($deviceActive );
Это работает, когда я делаю:
return $carry + $item->devices->count();
но нужно посчитать где guid
не является нулевым
Мне также было бы интересно услышать, если есть альтернатива reduce
подход.
поскольку $item->devices
коллекции нет whereNotNull()
для коллекций. Так что попробуйте использовать where()
:
$item->devices->where('guid', '<>', null)->count();
Пытаться:
$shops = Shop::with('devices')
->where('user_id', $userId)
->where('guid', '!=', null)->get();
$get_count = count($shops); // it return how many values have $shops
ИЛИ ЖЕ
$shops= DB::table('devices')->where('user_id', $userId)
->where('guid', '!=', null)->get();
$get_count = count($shops);
если у вас нет класса DB, добавленного на вашем контроллере:
use DB;