Mysql
 sql >> Database >  >> RDS >> Mysql

Come utilizzare orderby su un elemento che è stato unito con il metodo Laravel Eloquent WITH

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:

  1. Recupera il modello originale con SELECT * from originalModel ...*

  2. 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.