Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como usar orderby no elemento que foi unido com o método Laravel Eloquent WITH


Isso acontece porque o relacionamento belongsTo não executa um join query como você espera (como você pode ver pelo erro que você recebe). Ele executa outra consulta para obter o(s) modelo(s) relacionado(s). Como tal, você não poderá ordenar o modelo original por colunas de modelos relacionados.

Basicamente, acontecem 2 consultas:

  1. Busque o modelo original com SELECT * from originalModel ...*

  2. Busque os modelos relacionados com SELECT * from relatedModel where in id (originalModelForeignKeys)

Então o Laravel faz uma mágica e anexa os modelos da 2ª consulta aos modelos corretos da primeira consulta.

Você precisará realizar uma join real para poder encomendar do jeito que você quer.