首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Laravel OrderBy关系计数

Laravel OrderBy关系计数
EN

Stack Overflow用户
提问于 2014-06-13 23:04:57
回答 7查看 54.7K关注 0票数 72

我正在尝试获得最受欢迎的黑客马拉松,这需要按相应的黑客马拉松的partipants->count()排序。抱歉,如果这有点难以理解的话。

我有一个数据库,格式如下:

hackathons
    id
    name
    ...

hackathon_user
    hackathon_id
    user_id

users
    id
    name

Hackathon模型是:

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被定义为:

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());,但我觉得我犯了一个大错误(可能是$this->id),因为它根本不起作用。

我该如何去尝试获得最受欢迎的黑客松,这是基于最高数量的相关hackathonParticipants?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24208502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档