Php Laravel ORM count()无法与groupBy()正常工作
我想在我的数据库中计算城市所有者的数量。城市表类似于此结构:Php Laravel ORM count()无法与groupBy()正常工作,php,laravel,eloquent,laravel-5.2,query-builder,Php,Laravel,Eloquent,Laravel 5.2,Query Builder,我想在我的数据库中计算城市所有者的数量。城市表类似于此结构: (int) id | (int) player_id | (int) game_id 我有modelCity并尝试执行下一个代码: \App\City::where('game_id', $game_id) // $game_id was delivered earlier ->groupBy('player_id') ->count() 此代码返回值3。这是错误的值,因此我从DB:
(int) id | (int) player_id | (int) game_id
我有modelCity
并尝试执行下一个代码:
\App\City::where('game_id', $game_id) // $game_id was delivered earlier
->groupBy('player_id')
->count()
此代码返回值3。这是错误的值,因此我从DB::getQueryLog()
获取代码。下一个问题是:
select count(*) as aggregate from `cities` where `game_id` = ? and `cities`.`deleted_at` is null group by `player_id`
当我在PMA中执行此查询时,我得到2(有效值)
我不知道为什么我的代码不起作用。我也试着不执行count()
,而是执行count('player_id')
——也不起作用
这很奇怪,但是当我使用
get()
方法时,我有2的集合对象。我错了什么?城市
已删除
处的\u为空,可以。你能在=''处删除吗?@Plum我没有任何solf deleted对象,所以这个查询的结果是0行:)你有没有尝试过完整的查询,比如db->query(“select…”),而没有使用缩写->where()->groupby()等…@Plum当我执行\db::select('..)
这个方法返回一个数组,类似这样:[{”count(*)“:1},{“count(*)”:2}]
1。在您显示的架构中没有player\u id
。2.您是否可以发布表中的数据,这些数据应该会导致有效的结果?