【发布时间】:2016-05-22 07:43:38
【问题描述】:
我完全陷入了如何从模型(匹配)中仅获取两个相关条目(团队)的问题。
问题:
以下代码得到正确匹配,但所有现有团队也是如此。一场比赛只有 两支 队互相比赛,而这两支球队我都无法明确表示:-)
Match::with('teams')
->whereBetween('elo', [($request->user()->elo - 100), ($request->user()->elo + 100)])
->where('winner_id', 0)
->where('type', 'normal')
->get();
目标:
我想让这两支球队在比赛和球队建立之后,将一名球员分配给两支球队中的一支。但是如果我的观点是正确的,那么仅仅选择最后两个条目是不够的!
- 创建匹配(检查)
- 创建 2 个团队(检查)
- 将球员分配到其中一支球队(卡住)
表格:
匹配项(id、winner_id、...)
团队(id、match_id、...)
玩家(id、user_id、team_id、...)
关系:
class Match extends Model
{
protected $table = 'matches';
public function teams()
{
return $this->hasMany(Team::class);
}
public function winner()
{
return $this->belongsTo(Team::class, 'winner_id');
}
}
你能告诉我这需要什么吗?
【问题讨论】:
-
请用代码说明问题出在哪里。你的关系有问题吗?
-
我在用雄辩的语言指出正确的查询以将两支球队分配到一场比赛时遇到问题。
-
好的,那么两个团队的标准是什么?
-
我的意思是你是根据什么选择两个团队的?
-
只需添加 where('match_id',YOUR_VALUE_HERE) 即可获得团队,有什么问题
标签: laravel laravel-5 eloquent query-builder laravel-5.2