Laravel Eloquent-Abfragefehler: Inkompatibel mit sql_mode=only_full_group_by
In bestimmten Szenarien mit Laravel Eloquent-Abfragen kann eine Fehlermeldung angezeigt werden, die besagt:
<code class="text">SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'myshop.products.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by</code>
Dieser Fehler wird durch den strikten MySQL-Modus verursacht, der erfordert, dass alle Spalten in der SELECT-Liste entweder gruppiert oder aggregiert werden.
Lösung: Deaktivieren Sie den strikten MySQL-Modus
Die einfachste und effektivste Lösung für dieses Problem besteht darin, den strengen MySQL-Modus in Ihren Datenbankverbindungseinstellungen zu deaktivieren. Dies kann erreicht werden, indem Sie die folgende Konfiguration zu Ihrer Datenbank.php-Datei hinzufügen:
<code class="php">'connections' => [ 'mysql' => [ // Behave like MySQL 5.6 'strict' => false, // Behave like MySQL 5.7 'strict' => true, ] ]</code>
Wenn Sie „strict“ auf „false“ setzen, können Ihre Abfragen ohne die durch sql_mode=only_full_group_by auferlegte Einschränkung ausgeführt werden.
Erweiterte Konfiguration
Eine genauere Kontrolle über das Verhalten im strengen MySQL-Modus finden Sie im Blogbeitrag von Matt Stauffer zu diesem Thema:
<code class="text">https://mattstauffer.com/blog/mysql-config-for-laravel-developers</code>
Das obige ist der detaillierte Inhalt vonSo beheben Sie den Laravel Eloquent Query-Fehler: Inkompatibel mit sql_mode=only_full_group_by?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!