【发布时间】:2020-01-16 09:36:36
【问题描述】:
我在 laravel 5.7.28 中遇到了一个问题,我正在尝试使用我的所有字段获取记录并对其进行分页,遗憾的是我的代码中有一个错误导致注册用户的电话号码重复(a用户注册了不止一次,当然我修复了错误),现在我面临一个场景,我想在他们的手机上获取我的(非重复的)不同的用户,并对他们进行分页。这是一厢情愿的场景:
$users = User::distinct('phone')
->doesntHave('carrierUsers')
->doesntHave('thirdparty')
->latest()->paginate(40);
它返回所有用户(电话号码重复),似乎不同的功能不受影响,所以我尝试了独特的功能:
$users = User::doesntHave('carrierUsers')
->doesntHave('thirdparty')
->latest()->paginate(40)->unique('phone');
它可以工作(用于获得非重复)但会破坏分页功能
对于
$users = User::doesntHave('carrierUsers')
->doesntHave('thirdparty')
->latest()
->unique('phone')
->paginate(40);
我在构建器上遇到了未定义函数的错误,这意味着它适用于集合, 我也尝试了 groupBy(在整个网络上搜索解决方案),直到我使用它时才让我感到困惑
User::doesntHave('carrierUsers')->doesntHave('thirdparty')
->latest()->groupBy('phone')
->paginate(40);
我得到了SELECT list is not in GROUP BY clause,这是否意味着我的选择语句中的每个短语(现在都是 ('*') )我应该在我的 groupBy 中使用它?
我的意思是我需要所有列,我怎样才能在 groupBy 子句中拥有所有这些列?顺便问一下这是什么意思?
,错误提示:这与 sql_mode=only_full_group_by 不兼容。她让这件事发生吗?我该如何解决? 1)对不起我的英语 2) 感谢您阅读全文 3) 很高兴回复并帮助我
【问题讨论】:
标签: laravel group-by pagination unique distinct