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

用户

  • id(主要)
  • 电子邮件
  • 密码
  • 实名

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

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

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

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

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

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

    谢谢

    最佳答案

    迁移:

    $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');
    }
    

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

    关于php - 两个外键,如何用laravel Eloquent 地映射,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25061687/

    10-11 07:36
    查看更多