小编典典

两个外键,如何用laravel雄辩地映射

sql

我在MySQL中有两个表,其中第一个表称为用户,第二个表称为游戏。表结构如下。

使用者

  • id(主要)
  • 电子邮件
  • 密码
  • 真正的名字

游戏

  • id(主要)
  • user_one_id(外国)
  • user_one_score
  • user_two_id(外国)
  • user_two_score

我的游戏桌在两个用户之间建立了两个外交关系。

我的问题是如何为该表结构建立模型关系?-根据laravel文档,我应该在模型内部创建一个函数并将其与关系绑定

例如

public function users()
{
    $this->belongsTo('game');
}

但是我似乎在文档中找不到任何内容来告诉我如何处理两个外键。就像我上面的表格结构一样。

希望您能在这里为我提供帮助。

谢谢


阅读 163

收藏
2021-03-23

共1个答案

小编典典

迁移:

$table->integer('player1')->unsigned();
$table->foreign('player1')->references('id')->on('users')->onDelete('cascade');
$table->integer('player2')->unsigned();
$table->foreign('player2')->references('id')->on('users')->onDelete('cascade');

和一个模型:

public function player1()
{
    $this->belongsTo('Game', 'player1');
}
public function player2()
{
    $this->belongsTo('Game', 'player2');
}

EDIT 根据用户deczo的建议将“游戏”更改为“游戏”。

2021-03-23