【发布时间】:2018-02-19 17:32:43
【问题描述】:
我想通过 linkscount em ASC 对排序进行分页...
表格页面:
----------------------
id | name
----------------------
1 | Globo
----------------------
2 | Google
----------------------
3 | MC Donalds
----------------------
4 | Habibs
查询FIRST PAGE RESULTS(订单/查询OK):
$pages = Mypages::where('pages.author_id', auth()->user()->id)
->orderBy('linkscount', 'desc')
->leftJoin('links', 'links.page_id', '=', 'pages.id')
->selectRaw('pages.*, count(links.id) as linkscount')
->groupBy('pages.id')
->take(2)
->get();
查询到分页(顺序/查询不正确):
$pages = Mypages::where('pages.author_id', auth()->user()->id)
->orderBy('linkscount', 'asc')
->leftJoin('links', 'links.page_id', '=', 'pages.id')
->selectRaw('pages.*, count(links.id) as linkscount')
->groupBy('pages.id')
->where('pages.id', '>', $id)
->take(2)
->get();
这个查询,不返回任何内容,它是返回“MC Donalds”...
$id = 显示的最后一个 ID。
【问题讨论】:
-
这与真正的 SQL 查询相差甚远,但是如果您选择所有记录(页面。*)并且仅按 pages.id 分组,您通常会收到一个 SQL 错误,表明您的列是无效,因为它们不是聚合的,也不是 GROUP BY 的一部分。再说一次,这不是真正的 SQL,我不知道这些语言会如何处理它。
-
为什么不直接使用pagination 函数,它会为您完成所有这些工作?
-
因为我使用了 eloquent 无法识别的查询
标签: php sql laravel pdo eloquent