Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat \'Incompatible with sql_mode=only_full_group_by\' dalam Laravel Eloquent?

Bagaimana untuk Membetulkan Ralat \'Incompatible with sql_mode=only_full_group_by\' dalam Laravel Eloquent?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-23 12:10:19408semak imbas

How to Fix the

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:

  • https://mattsauer.com/blog/laravel-5-3-group-by-hack-with-mysql-strict-mode

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn