2017-01-24 48 views
0

我對分頁添加分頁到內部連接-ED laravel

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

得到錯誤誰能告訴如何分頁內連接查詢。

這是錯誤消息我得到:

QueryException在Connection.php線770:SQLSTATE [42000]:語法錯誤或訪問衝突:1140混合組列(MIN(),MAX (),COUNT(),...),如果沒有GROUP BY子句,則不合法(SQL:select count(*)作爲來自作者內部類別聚合的聚合.id = writers.category_id其中categories.category_name =漫畫))

+0

你得到什麼樣的錯誤? – devk

+0

什麼問題? –

+0

Connection.php中的QueryException第770行:SQLSTATE [42000]:語法錯誤或訪問衝突:1140如果GROUP列(MIN(),MAX(),COUNT(),...)沒有GROUP列的混合是非法的沒有GROUP BY子句(SQL:select count(*)作爲來自'作業者'內部連接'類別'''類別'上''聚合的聚合.'id' ='writers'.'category_id'其中('categories'.'category_name' = Comic))' –

回答

1

您需要在您的查詢中指定GROUP_BY條款

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

UPDATE

如果仍然出現錯誤,請檢查您config/database.php。可以肯定的是,在mysql的設置strict = false

更新2

嚴格模式工作在MySQL從5.7開始。如果你有5.7以下的mysql,請設置strict => false。您可以檢查此鏈接瞭解更多信息:

Strict mode

+0

這是我現在得到 –

+0

SQLSTATE [42000]:語法錯誤或訪問衝突:1055 'laravel5.writers.writer_name'不在GROUP BY中(SQL:select * from'作者'內部連接'categories'上'categories'.id' ='writers'.'category_id' where('categories'.' category_name' = Comics)group by'writers'.'id' limit 1 offset 0) –

+0

我更新了我的答案 – Rashad