您好我正在尝试获取下面我的陈述的当前计数,但我只得到计数而不是整个结果:
$admins = DB::table('users')
->select(DB::raw('count(users.id) as admin_count'))
->where('users_roles.role_id', '=' ,0)
->join('users_roles', 'users.id', '=', 'users_roles.user_id')
->orderBy('first_name', 'asc')
->get();
你能告诉我我做错了吗?
由于
答案 0 :(得分:2)
只需在*
子句中使用SELECT
,即可获得整个结果集。然后,$admins
是一个数组,您可以使用count
方法计算其数量。
$admins = DB::table('users')
->select('users.*')
->join('users_roles', 'users.id', '=', 'users_roles.user_id')
->where('users_roles.role_id', '=' ,0)
->get();
我假设您只为用户提供了users_roles.role_id = 0
一次。对于一个用户,role_id = 0
没有多个条目?
我希望这会有所帮助。
答案 1 :(得分:0)
或者你可以使用......
$ admins = User :: roles() - > where('role_id','=',0) - > count();
如果正确设置关系应该有效。
答案 2 :(得分:-1)
我不确定laravel如何使用查询构建器处理嵌套选择,在普通的sql中,它看起来像这样
SELECT users.id, (SELECT COUNT(users.id) FROM users) AS admin_count
FROM users
JOIN users_roles
ON user_roles.id = users.id
WHERE users_roles.role_id = 0
ORDER BY first_name
我非常确定您可以分配给变量并像$admins = DB::query($sql)