entrez la description de l'image ici Le problème se produit lorsque j'ajoute group by dans ma requête ...
Form::select('*')->groupBy('serial_num')->orderBy('id')->Paginate(10);
SQLSTATE [42000]: Erreur de syntaxe ou violation d'accès: 1055 'database.form.id' n'est pas dans GROUP BY (SQL: sélectionnez * dans le groupe
formparnuméro_sérielimite 10 offset 0)
3 Réponses :
Accédez à config \ database.php
Définissez
php artisan optimize
après avoir enregistré, exécutez cette commande
'mysql' => [
'strict' => false
p>
J'ai changé strict en faux mais encore une fois le même problème s'est produit, alors j'ai changé strict en vrai
Avez-vous effacé le cache après avoir changé?
Oui j'ai effacé le cache: php artisan config: cache, php artisan cache: clear et aussi je lance php artisan optimiser, mais cela n'a pas fonctionné ...
Merci beaucoup les gars, j'ai vidé le cache et j'ai redémarré mon serveur (xampp et laravel) et le groupe a travaillé ...
Ceci n'est pas lié à Laravel. Vous sélectionnez des colonnes non agrégées (*) en combinaison avec le regroupement.
Vous avez deux options ici
Explication plus détaillée https://dev.mysql.com/doc/ refman / 5.7 / fr / group-by-handling.html
Modifier: Apparemment, Laravel peut également définir les modes MySQL à la volée.
Comme mentionné dans les commentaires, vous pouvez désactiver le mode strict dans les paramètres de la base de données Laravel, Laravel devrait alors définir le mode serveur MySQL en conséquence, je ne trouve pas de documentation à jour pour cela
https://github.com/laravel/laravel /blob/master/config/database.php#L59
https: // mattstauffer.com/blog/strict-mode-and-other-mysql-customizations-in-laravel-5-2/
assurez-vous de vider tout cache de configuration après avoir modifié le paramètre
Si vous pouviez gérer la pagination vous-même, alors vous pourriez obtenir les résultats, puis implémenter groupBy sur la collection.
$forms = Form::orderBy('id')->get()->groupBy(function ($item, $key) {
return $item['serial_num'];
});
Qu'essayez-vous d'accomplir avec cette requête? Pouvez-vous nous montrer des exemples de données d'entrée et de sortie? La requête que vous avez écrite n'a pas de sens, mais là encore, ce n'est peut-être pas ce que vous avez l'intention de faire.
Avez-vous un modèle nommé
Form?Oui, j'ai un nom de modèle. Je veux lister tous les enregistrements mais je veux regrouper les enregistrements qui ont le même numéro de série ...
Pouvez-vous montrer la sortie souhaitée?