2017-01-24 5 views
0

Ich erhalte Fehler auf PaginierungHinzufügen Paginierung INNER JOIN-ed Laravel

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

Kann jemand sagen, wie eine innere Join-Abfrage Paginieren.

Dies ist die Fehlermeldung erhalte ich:

QueryException in Connection.php Linie 770: SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1140 Mischen von GROUP Spalten (MIN(), MAX(), COUNT(), ...) ohne GROUP-Spalten ist illegal, wenn keine GROUP BY-Klausel vorhanden ist (SQL: wähle count (*) als Aggregat aus inneren Join-Kategorien von Writern für categories.id = writers.category_id where (categories.category_name = Comic))

+0

Welche Art von Fehler erhalten Sie? – devk

+0

Was ist das Problem? –

+0

'QueryException in Connection.php Zeile 770: SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1140 Mischen von GROUP Spalten (MIN(), MAX(), COUNT(), ...) ohne GROUP-Spalten ist illegal, wenn Es gibt keine GROUP BY-Klausel (SQL: wähle count (*) als Aggregat aus "Writers" inner join 'categories' in' categories'. 'id' =' writers'.category_id' wo ('categories'.category_name' = Comic)) ' –

Antwort

1

Sie müssen GROUP_BY Klausel auf Abfrage angeben

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

UPDATE

Wenn Sie immer noch eine Fehlermeldung erhalten, Ihre config/database.php überprüfen. Achten Sie darauf, dass in MySQL Einstellungen strict = false

UPDATE 2

Strict-Modus auf Mysql von 5,7 Starten funktioniert. Wenn Sie mysql unter 5.7 haben, setzen Sie strict => false. Sie können sich für weitere Informationen auf diesen Link überprüfen:

Strict mode

+0

Das bin ich jetzt –

+0

SQLSTATE [42000]: Syntax Fehler oder Zugriffsverletzung: 1055 'laravel5.writers.writer_name' befindet sich nicht in GROUP BY (SQL: wähle * aus 'writers' inner join 'categories' auf' categories'.id' = 'writer'.category_id' wo (' categories'.') category_name' = Comics) Gruppe von 'writers'.id' Limit 1 Offset 0) –

+0

Ich habe meine Antwort aktualisiert – Rashad