我的表结构如下:
用户
游戏
枢轴表:
game_user
现在用户模型定义如下:
class User extends Authenticatable
{
use Notifiable;
protected $fillable = [
'name', 'email', 'password',
];
protected $hidden = [
'password',
];
public function games() {
return $this->belongsToMany(Game::class);
}
}
现在,我感兴趣的是编写一个单独的Eloquent表达式,它将为我提供一系列用户,每个用户最多有五个游戏。当然,像User::with('games')->get()
这样的东西可以为每个用户提取所有游戏。
如何做到这一点?
答案 0 :(得分:0)
使用take()
方法:
User::with(['games'=>function($query){
if($query->count()>5)
{
$query->take(5);
}
else
{
$query->get();
}
}])->get();
没有简单的方法可以实现这一目标。请参阅Tweaking Eloquent Relations。