Inkompatibler Fehler mit sql_mode=only_full_group_by in Laravel Eloquent beheben
Bei Laravel Eloquent-Abfragen kann der Fehler „Inkompatibel mit sql_mode=only_full_group_by“ auftreten, wenn die Die Abfrage schließt nicht aggregierte Spalten in die SELECT-Liste ein, die nicht funktional abhängig sind auf die Spalten in der GROUP BY-Klausel. Um dieses Problem zu beheben, kann der strikte MySQL-Modus in den Datenbankverbindungseinstellungen deaktiviert werden.
Im bereitgestellten Beispielcode wird die Abfrage nach „store_id“ gruppiert und nach „update_at“ sortiert, aber die ID-Spalte ist auch in enthalten SELECT-Liste. Da die ID funktional nicht von der Store-ID abhängig ist, kann sie nicht ohne Aggregation in die SELECT-Liste aufgenommen werden.
Um den Fehler zu beheben, deaktivieren Sie den strengen MySQL-Modus, indem Sie die folgende Konfiguration zu Ihren Datenbankverbindungseinstellungen in der Konfiguration/Datenbank hinzufügen .php-Datei:
'connections' => [ 'mysql' => [ // Behave like MySQL 5.6 'strict' => false, // Behave like MySQL 5.7 'strict' => true, ] ]
Durch die Deaktivierung des strikten Modus können nicht aggregierte Spalten in die SELECT-Liste aufgenommen werden, auch wenn sie funktional nicht von den Spalten in abhängig sind die GROUP BY-Klausel.
Zusätzliche Konfigurationseinstellungen
Weitere Konfigurationsoptionen im Zusammenhang mit dem strikten Modus finden Sie im Blogbeitrag von Matt Stauffer:
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Inkompatibel mit sql_mode=only_full_group_by' in Laravel Eloquent?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!