Ada 2 cara - satu dengan menentukan table.field
, lainnya menggunakan alias Eloquent pivot_field
jika Anda menggunakan 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
Ini akan berfungsi, karena Eloquent alias semua bidang yang disediakan di withPivot
sebagai pivot_field_name
.
Sekarang, solusi umum:
$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();
Ini akan memesan kueri terkait.
Catatan: Jangan membuat hidup Anda sulit dengan menamai hal-hal seperti ini. posts
belum tentu articles
, saya akan menggunakan salah satu atau nama lainnya, kecuali jika benar-benar diperlukan.