Reputation: 2817
I am getting error on pagination
$writers = $writer::join('categories','categories.id','=','writers.category_id')
->where([['categories.category_name', '=', $category]])->paginate(1);
Can anyone tell how to paginate an inner join query.
This is the error message I'm getting:
QueryException in Connection.php line 770: SQLSTATE[42000]: Syntax error or access violation: 1140 Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause (SQL: select count(*) as aggregate from writers` inner join categories on categories.id = writers.category_id where (categories.category_name = Comic))
Upvotes: 0
Views: 538
Reputation: 1344
You need to specify GROUP_BY
clause on your query
$writers = Writer::join('categories','categories.id','=','writers.category_id')
->where('categories.category_name', '=', $category)
->groupBy('writers.id')
->paginate(1);
UPDATE
If you still get an error, check your config/database.php
. Be sure that in mysql settingsstrict = false
UPDATE 2
strict mode works on mysql starting from 5.7. If you have mysql under 5.7, set strict => false
. You can check this link for more information:
Upvotes: 1