इसके 2 तरीके हैं - एक table.field
. निर्दिष्ट करने के साथ , अन्य सुवक्ता उपनाम 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
यह काम करेगा, क्योंकि एलोक्वेंट एलियासेस 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
. हों , मैं या तो एक या दूसरे नाम का उपयोग करूंगा, जब तक कि वास्तव में इसकी आवश्यकता न हो।