Laravel为运动装置提供关系

时间:2017-08-13 17:42:28

标签: laravel

所以,我正在为拳击创建一个结果网站,我试图让拳击手过去的结果,但我正在与人际关系挣扎......

例如,拳击手可以有很多事件(战斗),并且有1个结果(胜利,平局或失败)和1个对手。我试图用对手的信息显示所有的拳击手结果

所以,我有一个结构的事件(如果需要可以添加一个关系id)

    Schema::create('events', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->date('date');
        $table->string('location');
        $table->timestamps();
        $table->softDeletes();
    });

我有一个拳击手表

    Schema::create('boxers', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('status');
        $table->string('division');
        $table->string('stance');
        $table->date('dob');
        $table->integer('height');
        $table->string('nationality');
        $table->string('residence');
        $table->string('birthplace');
        $table->timestamps();
        $table->softDeletes();
    });

和结果

    Schema::create('results', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('user_id');
        $table->integer('event_id');
        $table->string('result');
        $table->timestamps();
        $table->softDeletes();
    });

我需要添加和更改以使关系正常工作?

1 个答案:

答案 0 :(得分:0)

事件通常是hasMany打架(卡片上的许多打斗),每次打架hasMany(两位)运动员。因此,你的战斗/运动员关系将是多对多的(战士在他们的职业生涯中有很多战斗)。您将创建一个数据透视表athletes_fights,其中包含fight_idathlete_id列。此外,此数据透视表可以包含winner_iddraw列。如果战斗是平局,Draw可以默认为0,1。它也可能有win_method(甚至可以为此创建另一个表格并使其成为win_method_id),win_roundwin_time

如果您还没有,请查看Laravel文档中的关系部分。

所以你的模型会...... Event Fight Athlete