Има 2 начина - единият с посочване на table.field
, други използват псевдоним Eloquent pivot_field
ако използвате 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
Това ще работи, защото Eloquent използва псевдоними на всички полета, предоставени в withPivot
като pivot_field_name
.
Сега общо решение:
$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();
Това ще подреди свързаната заявка.
Забележка: Не си затруднявайте живота с назоваването на нещата по този начин. posts
не са непременно articles
, бих използвал едното или другото име, освен ако наистина няма нужда от това.