Dzieje się tak, ponieważ relacja shouldTo nie wykonuje join
zapytanie zgodnie z oczekiwaniami (jak widać z otrzymanego błędu). Wykonuje kolejne zapytanie, aby uzyskać powiązane modele. W związku z tym nie będziesz w stanie zamówić oryginalnego modelu według powiązanych kolumn modeli.
Zasadniczo zdarzają się 2 zapytania:
-
Pobierz oryginalny model za pomocą
SELECT * from originalModel ...*
-
Pobierz powiązane modele za pomocą
SELECT * from relatedModel where in id (originalModelForeignKeys)
Następnie Laravel robi trochę magii i dołącza modele z drugiego zapytania do właściwych modeli z pierwszego zapytania.
Będziesz musiał wykonać faktyczne join
aby móc zamawiać tak, jak chcesz.