Ciò accade perché la relazione appartieneTo non esegue un join
interroga come ti aspetti (come puoi vedere dall'errore che ottieni). Esegue un'altra query per ottenere i modelli correlati. Pertanto, non potrai ordinare il modello originale in base alle colonne dei modelli correlati.
Fondamentalmente, si verificano 2 query:
-
Recupera il modello originale con
SELECT * from originalModel ...*
-
Recupera i modelli correlati con
SELECT * from relatedModel where in id (originalModelForeignKeys)
Quindi Laravel fa un po' di magia e collega i modelli della seconda query ai modelli corretti della prima query.
Dovrai eseguire un join
per poter ordinare come vuoi tu.