将分页添加到内部联接laravel

时间:2017-01-24 11:19:51

标签: php mysql laravel laravel-5.3

我的分页错误

$writers = $writer::join('categories','categories.id','=','writers.category_id')
    ->where([['categories.category_name', '=', $category]])->paginate(1);

任何人都可以告诉如何对内连接查询进行分页。

这是我收到的错误消息:

  

Connection.php第770行中的QueryException:SQLSTATE [42000]:语法错误或访问冲突:1140混合GROUP列(MIN(),MAX(),COUNT(),...)没有GROUP列是非法的如果没有GROUP BY子句(SQL:select count(*)作为来自authorsrs`的聚合,则在categories.id = writers.category_id where(categories.category_name = Comic))

1 个答案:

答案 0 :(得分:1)

您需要在查询中指定GROUP_BY子句

$writers = Writer::join('categories','categories.id','=','writers.category_id')
   ->where('categories.category_name', '=', $category)
   ->groupBy('writers.id')
   ->paginate(1);

<强>更新

如果仍然出现错误,请检查config/database.php。请确保在mysql设置中strict = false

更新2

严格模式适用于从5.7开始的mysql。如果您在5.7下有mysql,请设置strict => false。您可以查看此链接以获取更多信息:

Strict mode