如何显示由最大行数确定的用户
Posted
技术标签:
【中文标题】如何显示由最大行数确定的用户【英文标题】:How to display a user determined by the maximum number rows 【发布时间】:2015-08-12 20:21:00 【问题描述】:我正在使用 laravel 4.2,我有如下表格,看起来像这样
ID|chosen(boolean('0','1'))|subject|user_id
1|1 |cricket|2
2|0 |cricket|3
3|1 |rugby |2
我想选择具有最多选择行的 user_id,或者换句话说,选择在他们选择的列中具有最多 1 的用户。所以在这种情况下,用户 2 将是正确的结果。
我相信这就是答案
$table = DB::table('tablename')
->select(array(DB::raw('count(user_id) AS CountUser')))
->where('chosen', 1)
->orderBy('CountUser', 'desc')
->groupBy('user_id')
->first();
但是如何在我的视图中显示 user_id? 例如:
$table->user_id //should give me '2'
错误信息如下:
未定义属性:stdClass::$user_id
【问题讨论】:
【参考方案1】:您只选择计数。试试这个
$table = DB::table('tablename')
->select(DB::raw('count(user_id) AS CountUser, user_id'))
->where('chosen', 1)
->orderBy('CountUser', 'desc')
->groupBy('user_id')
->first();
【讨论】:
我仍然收到相同的错误消息。我很困惑! 可以dd($table)
查询后显示结果吗?
我得到了这个object(stdClass)#222 (1) ["CountUser"]=> int(2)
它计算了具有最大 1 数的用户,但由于某种原因我无法显示该用户
这一定是 Laravel 的 bug!
在查询后尝试dd(DB::getQueryLog())
并显示结果以上是关于如何显示由最大行数确定的用户的主要内容,如果未能解决你的问题,请参考以下文章