Menyelesaikan Ralat Tidak Serasi dengan sql_mode=only_full_group_by dalam Laravel Eloquent
Pertanyaan Laravel Eloquent boleh menghadapi "incompatible_mode_on_group" apabila pertanyaan termasuk lajur bukan agregat dalam senarai SELECT yang tidak bergantung secara fungsi pada lajur dalam klausa GROUP BY. Untuk menyelesaikan isu ini, mod ketat MySQL boleh dilumpuhkan dalam tetapan sambungan pangkalan data.
Dalam kod contoh yang disediakan, pertanyaan dikumpulkan mengikut store_id dan memesan mengikut updated_at, tetapi lajur id juga disertakan dalam PILIH senarai. Memandangkan id tidak bergantung secara fungsi pada store_id, ia tidak boleh disertakan dalam senarai PILIH tanpa pengagregatan.
Untuk menyelesaikan ralat, lumpuhkan mod ketat MySQL dengan menambahkan konfigurasi berikut pada tetapan sambungan pangkalan data anda dalam konfigurasi/pangkalan data Fail .php:
'connections' => [ 'mysql' => [ // Behave like MySQL 5.6 'strict' => false, // Behave like MySQL 5.7 'strict' => true, ] ]
Melumpuhkan mod ketat membolehkan lajur tidak teragregat dimasukkan dalam senarai PILIH walaupun ia tidak bergantung pada lajur dalam klausa GROUP BY.
Tetapan Konfigurasi Tambahan
Pilihan konfigurasi lanjut yang berkaitan dengan mod ketat boleh didapati dalam catatan blog oleh Matt Stauffer:
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'Incompatible with sql_mode=only_full_group_by\' dalam Laravel Eloquent?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!