Maison > développement back-end > tutoriel php > Comment résoudre l'erreur de requête Laravel Eloquent : incompatible avec sql_mode=only_full_group_by ?

Comment résoudre l'erreur de requête Laravel Eloquent : incompatible avec sql_mode=only_full_group_by ?

Patricia Arquette
Libérer: 2024-10-18 12:17:02
original
631 Les gens l'ont consulté

How to Resolve Laravel Eloquent Query Error: Incompatible with sql_mode=only_full_group_by?

Erreur de requête Laravel Eloquent : incompatible avec sql_mode=only_full_group_by

Dans certains scénarios impliquant des requêtes Laravel Eloquent, vous pouvez rencontrer un message d'erreur indiquant :

<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>
Copier après la connexion

Cette erreur est causée par le mode strict de MySQL, qui nécessite que toutes les colonnes de la liste SELECT soient regroupées ou agrégées.

Solution : désactiver le mode strict de MySQL

La solution la plus simple et la plus efficace à ce problème consiste à désactiver le mode strict MySQL dans les paramètres de connexion à votre base de données. Ceci peut être réalisé en ajoutant la configuration suivante à votre fichier database.php :

<code class="php">'connections' => [
    'mysql' => [
        // Behave like MySQL 5.6
        'strict' => false,

        // Behave like MySQL 5.7
        'strict' => true,
    ]
]</code>
Copier après la connexion

Définir 'strict' sur 'false' permettra à vos requêtes de s'exécuter sans la contrainte imposée par sql_mode=only_full_group_by.

Configuration avancée

Pour un contrôle plus précis du comportement du mode strict de MySQL, vous pouvez vous référer au billet de blog de Matt Stauffer sur le sujet :

<code class="text">https://mattstauffer.com/blog/mysql-config-for-laravel-developers</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal