从其他 table 算起
Count from other table
我在计算 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);
如果您的控制器没有 class 数据库添加:
use DB;
我在计算 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);
如果您的控制器没有 class 数据库添加:
use DB;