我为玩家创建系统。
我有以下 3 个表:
matches:
- id
- win_points
- draw_points
- lose_points
aways:
- id
- match_id
- user_id
- score
homes:
- id
- match_id
- user_id
- score
现在我的人际关系有些问题。
我可以获取用户,获取他的客场、主场,但我无法获取有关比赛的信息。
我正在考虑away_match和home_match的数据透视表,但我不知道这是否是个好主意。
最佳答案
您不需要任何枢轴。 在模型客场和主场中您可以添加以下功能:
public function match(){
return $this->belongsTo(Match::class);
}
这将返回客场/主场的比赛。与 documentation 不同,我在这里使用了 Match::class,它仅在将命名空间设置为 App\Models 而不仅仅是 App 时才有效。
您现在可以从用户那里获得与这段代码的匹配:
$match = $user->homes->find($homeId)->match;
(您从您的用户那里说过您可以得到家和离开,所以我假设您已经在用户模型中实现了类似的方法
public function homes(){
return $this->hasMany(Home::class);
}
关于php - Laravel 创建表和关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40865920/