php - Laravel 创建表和关系

标签 php mysql laravel pivot-table relationship

我为玩家创建系统。
我有以下 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/

相关文章:

php - 使用带有codeigniter奇怪错误的sqlite

javascript - 如何在 html 中设置文本脚本的样式?

php - php 上的超链接

mysql - 在 bash 脚本中将变量注入(inject)到 mysql 查询中

javascript - Laravel 5.5 使用模态删除数据

Laravel 从嵌套关系中提取一个数组

javascript - Laravel - Javascript 在 JSFiddle 中工作,但在 Blade 中不起作用

php - Joomla sql 查询使用 NOT LIKE

php - SQL 更新查询无法正确处理 php 数据

mysql - 为什么 MySQL 得不到正确的数据?