2017-04-16 4 views
0

Dies ist meine einfache Struktur:Laravel 5.4 Bestellung von nahe stehenden Tabelle nach der Verwendung von `with` Anweisung

public class Post{ 
    public function user(){ 
    return $this->belongsTo(User::class); 
    } 
} 

Dies ist, wie ich Abfrage (die Abfrage Paginierung hat):

$query = Post::query(); 
$query->with('user'); 

Ich mag Sortieren nach user.name.
Jetzt weiß ich, dass ich $query->with('user',function(){...order by here});
gehen kann, aber ich brauche eine Methode, die ich später im Stapel ausführen kann.

$query->user->orderBy('name'); 
$query->user()->orderBy('name'); 

Diese https://stackoverflow.com/a/38741988/936651 sagt, dass es möglich ist, aber ich habe den Fehler: Undefined property/method: Illuminate\Database\Eloquent\Builder::$user

Gibt es eine Möglichkeit von nahe stehenden Tabelle zu sortieren nach with Anweisung?

Dank

Antwort

0

Ihr Code, da funktioniert nicht, wenn Sie $query = Post::query(); tun wird es eine Instanz des Query Builder zurückkehren, so dass, wenn Sie nach $query->user() tun es gibt einen Fehler, da die Query Builder die Methode nicht hat user(), diese Methode existiert in Ihrem Post-Modell.

Ich werde keinen Code zur Verfügung stellen, da Sie bereits erwähnt haben, wissen, wie die with() Weise zu tun ..

+0

Können Sie Codebeispiel geben Sie bitte? – SexyMF

Verwandte Themen