Tôi đang cố gắng để có được những hackathons phổ biến nhất mà yêu cầu đặt hàng bởi hackathon tương ứng partipants->count()
. Xin lỗi nếu đó là một chút khó hiểu.Thứ tự LarboBộ đếm mối quan hệ
Tôi có một cơ sở dữ liệu với định dạng sau:
hackathons
id
name
...
hackathon_user
hackathon_id
user_id
users
id
name
Mô hình Hackathon
là:
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');
}
}
Và HackathonParticipant
được định nghĩa là:
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');
}
}
Tôi đã thử Hackathon::orderBy(HackathonParticipant::find($this->id)->count(), 'DESC')->take(5)->get());
nhưng tôi cảm thấy như tôi đã phạm sai lầm lớn (có thể là $ this-> id), bởi vì nó không hoạt động chút nào.
Tôi sẽ làm cách nào để tìm cách sử dụng các hackathons phổ biến nhất dựa trên số lượng người tham gia HackathonParticipant liên quan cao nhất?
Làm thế nào để thay đổi asending/desecnding? – FooBar
'sortBy (Đóng $ callback, $ options = SORT_REGULAR, bool $ descending = false)' Chỉ cần đặt tham số thứ 3 là true. – user3158900
sắp xếp theo không làm điều đó ở cấp DB ... do đó, nó sẽ không hoạt động đúng với phân trang! Tốt cho khi bạn đang quay trở lại một bộ đầy đủ mặc dù .. –