मैं सबसे लोकप्रिय हैकथॉन प्राप्त करने की कोशिश कर रहा हूं जिसके लिए संबंधित हैकथॉन के partipants->count()
द्वारा आदेश की आवश्यकता है। क्षमा करें अगर यह समझने में थोड़ा मुश्किल है।लैरवेल ऑर्डरबी रिश्ते की गिनती
hackathons
id
name
...
hackathon_user
hackathon_id
user_id
users
id
name
Hackathon
मॉडल है:
class HackathonParticipant extends \Eloquent {
protected $fillable = ['hackathon_id', 'user_id'];
protected $table = 'hackathon_user';
public function user()
{
return $this->belongsTo('User', 'user_id');
}
public function hackathon()
{
return $this->belongsTo('Hackathon', 'hackathon_id');
}
}
मैं Hackathon::orderBy(HackathonParticipant::find($this->id)->count(), 'DESC')->take(5)->get());
की कोशिश की है:
class Hackathon extends \Eloquent {
protected $fillable = ['name', 'begins', 'ends', 'description'];
protected $table = 'hackathons';
public function owner()
{
return $this->belongsToMany('User', 'hackathon_owner');
}
public function participants()
{
return $this->belongsToMany('User');
}
public function type()
{
return $this->belongsToMany('Type');
}
}
और HackathonParticipant
के रूप में परिभाषित किया गया है
मैं निम्न स्वरूप के साथ एक डेटाबेस है लेकिन मुझे लगता है कि मैंने एक बड़ी गलती की है (संभवतः $ यह-> आईडी), क्योंकि यह बिल्कुल काम नहीं करता है।
मैं सबसे लोकप्रिय हैकथॉन प्राप्त करने की कोशिश करने के बारे में कैसे जाउंगा जो संबंधित हैकथॉन पार्टेंटेंट्स की उच्चतम संख्या पर आधारित है?
कैसे asending/desecnding बदलने के लिए? – FooBar
'sortBy (क्लोजर $ कॉलबैक, $ विकल्प = SORT_REGULAR, बूल $ अवरोही = झूठा)' बस सही पर तीसरा पैरामीटर सेट करें। – user3158900
क्रमशः डीबी स्तर पर ऐसा नहीं करता है ... तो यह पेजिंग के साथ सही काम नहीं करेगा! अच्छा जब आप एक पूर्ण सेट लौट रहे हैं तो अच्छा .. –