/ / Laravel връзки за спортни тела - laravel

Laravel отношения за спортни тела - laravel

Така че, аз създавам уебсайт с резултати за бокс, опитвам се да получа боксьори минали резултати, но се боря с отношенията ...

Например, боксьорът може да има много събития (битка) и да има 1 резултат (победа, равенство или загуба) и 1 противник. Опитвам се да покажа всички резултати на боксьорите с информация за противниците

И така, имам събитие със структурата (може да добавите идентификатор на връзка, ако е необходимо)

    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();
});

Какво трябва да добавя и променя, за да накарам връзката да работи правилно?

Отговори:

0 за отговор № 1

Събития обикновено hasMany битки (много битки на карта), всяка битка hasMany (двама) спортисти. Така че отношенията ви борба / спортист биха били много-много (бойците имат много битки през цялата си кариера). Ще създадете въртяща се таблица athletes_fights което ще има fight_id и athlete_id колони. Освен това тази въртяща се таблица може да има a winner_id и a draw колона. Равенството може да бъде по подразбиране до 0, 1, ако двубоят е равен. Може и да има win_method (може дори да създам друга таблица за това и да я направя win_method_id), win_round, win_time.

Вижте раздела за взаимоотношенията в документите на Laravel, ако още не сте го направили.

Така че вашият модел ще бъде .. Event Fight Athlete