问题描述
我想得到你的推荐。
// Solution one
$total_user=User::count();
$active_user=User::where('active','active')->count();
// Solution two
$user = User::all();
$total_user=$user->count();
$active_user=$user->where('active','active')->count();
解决方法
我认为解决方案 1 更好
因为在解决方案 2 中,您从数据库中获取所有数据,然后对其进行计数,这比在解决方案 1 中仅计算它们花费的时间要多得多
所以我的选择是解决方案 1
,1- 首先我们用一个查询拉取所有记录
$users = User::select('id','active')->get();
注意: 使用SELECET,如果不需要其他重要的用户信息以加快速度,我们只带上属于用户的选定字段。
2- 我们过滤
$active_users = $users->filter(function ($row) {
return $row->aktive == 'active';
});
3- 然后我们写(在视图中)
Total :{{ count($users) }}
Active :{{ count($active_users) }}