Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So verwenden Sie orderby für ein Element, das mit der Laravel Eloquent-Methode WITH verbunden wurde

Dies liegt daran, dass die „gehört zu“-Beziehung keinen join ausführt Abfrage, wie Sie es erwarten (wie Sie aus dem Fehler sehen können, den Sie erhalten). Es führt eine weitere Abfrage aus, um das/die zugehörige(n) Modell(e) abzurufen. Daher können Sie das Originalmodell nicht nach verwandten Modellspalten bestellen.

Grundsätzlich passieren 2 Abfragen:

  1. Holen Sie sich das Originalmodell mit SELECT * from originalModel ...*

  2. Rufen Sie die verwandten Modelle mit SELECT * from relatedModel where in id (originalModelForeignKeys) ab

Dann zaubert Laravel etwas und hängt die Modelle aus der zweiten Abfrage an die richtigen Modelle aus der ersten Abfrage an.

Sie müssen einen tatsächlichen join durchführen um so bestellen zu können, wie Sie es möchten.