我为玩家创建系统。
我有以下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进行数据透视表,但是我不知道这是一个好主意。

最佳答案

您不需要任何枢轴。
在Models Away and Home中,您可以添加以下功能:

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/

10-10 03:21