Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment utiliser orderby sur un élément qui a été joint avec la méthode Laravel Eloquent WITH

Cela se produit parce que la relation existsTo n'exécute pas de join requête comme vous l'attendez (comme vous pouvez le voir à partir de l'erreur que vous obtenez). Il exécute une autre requête pour obtenir le ou les modèles associés. En tant que tel, vous ne pourrez pas classer le modèle d'origine par colonnes de modèles associés.

En gros, 2 requêtes se produisent :

  1. Récupérez le modèle d'origine avec SELECT * from originalModel ...*

  2. Récupérez les modèles associés avec SELECT * from relatedModel where in id (originalModelForeignKeys)

Ensuite, Laravel fait un peu de magie et attache les modèles de la 2ème requête aux modèles corrects de la première requête.

Vous devrez effectuer une véritable join pour pouvoir commander comme vous le souhaitez.