gpt4 book ai didi

php - Laravel OrderBy 关系计数

转载 作者:IT老高 更新时间:2023-10-28 12:58:49 26 4
gpt4 key购买 nike

我正在尝试获得最流行的黑客马拉松,这需要通过相应的黑客马拉松的 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),因为它根本不起作用。

我将如何尝试根据最多的相关黑客松参与者获得最受欢迎的黑客松?

最佳答案

这适用于我在 Laravel 5.3 中,使用你的例子:

Hackathon::withCount('participants')->orderBy('participants_count', 'desc')->paginate(10); 

这样它在查询中被排序并且分页效果很好。

关于php - Laravel OrderBy 关系计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24208502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com