Der er 2 måder - den ene med at specificere table.field
, andet ved hjælp af Eloquent alias pivot_field
hvis du bruger withPivot('field')
:
// if you use withPivot
public function articles()
{
return $this->belongsToMany('Article', 'tops_has_posts')->withPivot('range');
}
// then: (with not whereHas)
$top = Top::with(['articles' => function ($q) {
$q->orderBy('pivot_range', 'asc');
}])->first(); // or get() or whatever
Dette vil fungere, fordi Eloquent aliaserer alle felter i withPivot
som pivot_field_name
.
Nu, generisk løsning:
$top = Top::with(['articles' => function ($q) {
$q->orderBy('tops_has_posts.range', 'asc');
}])->first(); // or get() or whatever
// or:
$top = Top::first();
$articles = $top->articles()->orderBy('tops_has_posts.range', 'asc')->get();
Dette vil bestille den relaterede forespørgsel.
Bemærk: Gør ikke dit liv svært med at navngive ting på denne måde. posts
er ikke nødvendigvis articles
, jeg ville bruge enten det ene eller det andet navn, medmindre der virkelig er behov for dette.