Ich habe das CakePHP 3.x "Bookmaker Tutorial" ausprobiert und bin der Anleitung Schritt für Schritt gefolgt. Leider bekomme ich am Ende des ersten Kapitels den angehängten Fehler:
%Vor%Außerdem bekomme ich die Informationen, um meine "BookmarksTags" -Tabelle zu überprüfen, aber ich muss sie vorher nicht erstellen. Ich bin ein bisschen verwirrt.
%Vor%Ich google bereits mein Problem und ich fand Informationen, um die "my.cnf" mit einer zusätzlichen Zeile zu aktualisieren. Ich versuche es schon, aber nichts passiert. Ich überprüfe auch die Rechtschreibung und lade das "bookmarker-tutorial" von github herunter, aber ich erhalte immer noch diesen Fehler oben.
Ich benutze MySQL 5.7.11 und PHP 5.6.14.
Dies ist eine neue Sache in MySQL 5.7 und ist eine Warnung, dass Ihre Abfrage nicht eindeutig ist.
Betrachten Sie die folgende Tabelle:
%Vor%Wenn Sie die folgende Abfrage ausgeführt haben:
%Vor% Dann wird die Spalte name
für die Gruppierung verwendet. Beachten Sie, dass age
möglicherweise mehrere Werte hat, also "nicht aggregiert" ist. Sie müssen etwas tun, um diese Werte zu reduzieren.
Das Verhalten in 5.6 und vorhergehend war, nur das erste auszuwählen, abhängig von der Sortierreihenfolge, obwohl dies manchmal unvorhersehbar war und fehlschlagen würde. In 5.7 verhindern sie dich von vornherein.
Die Lösung besteht darin, auch hier zu gruppieren oder einen Aggregatoperator wie MIN()
darauf anzuwenden.
Ich benutze Laravel 5.4 und sehe das gleiche Problem.
Ich versuche, strict
in false
auf config/database.php
zu setzen und es funktioniert.
Es ist jedoch besser, die SQL-Abfrage zu bearbeiten als die Warnung zu unterdrücken.
Ich bin gerade über dasselbe Problem gestolpert.
Eine einfache Möglichkeit, das Lernprogramm "arbeiten" zu lassen, ohne die Abfrage zu ändern, könnte sein, sql_mode
in config/app.php
:
Während dies die Dinge funktionieren lassen sollte, wird es wahrscheinlich in echten Fällen nicht empfohlen.
Dies könnte das Problem in Bezug auf eine neuere Version von MySQL sein, wie Sie sagten, dass Sie MySQL 5.7.11 verwenden Also, um dieses Problem für alle Ihre Websites zu lösen, sehen Sie dies
die Antwort von der Community, um die Zeile unter
hinzuzufügen %Vor%in /etc/mysql/my.cnf Datei & amp; es zu speichern; und nach dem Neustart des Servers
%Vor%Würde die Arbeit machen
Zusätzlich zu Tadmans Kommentar sollten Sie für die von Ihnen verfolgte Anleitung Ihre sql-select-Abfrage sowohl mit Bookmarks.id als auch mit BookmarksTags.tag_id statt nur mit der Datei "Bookmarks.id" gruppieren.
Um dies zu tun, in der BookmarksTable.php Datei, Zeile
%Vor%sollte wie
aussehen %Vor%