/ Relacje Laravela dla urządzeń sportowych - laravel

Laravel relacje dla urządzeń sportowych - laravel

Tworzę stronę z wynikami dla boksu, staram się, aby bokserzy przeszli obok wyników, ale walczę z relacjami ...

Na przykład bokser może mieć wiele wydarzeń (walka) i 1 wynik (wygrana, remis lub przegrana) i 1 przeciwnik. Próbuję wyświetlić wszystkie wyniki bokserów z informacjami o przeciwnikach

Mam więc zdarzenie ze strukturą (w razie potrzeby mogę dodać identyfikator relacji)

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

Mam stolik bokserski

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

i wyniki

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

Co powinienem dodać i zmienić, aby związek działał poprawnie?

Odpowiedzi:

0 dla odpowiedzi № 1

Wydarzenia zazwyczaj hasMany pojedynki (wiele pojedynków na karcie), każda walka hasMany (dwóch) sportowców. Tak więc twój stosunek walki do sportowca byłby wiele do wielu (zawodnicy mają wiele walk przez całą karierę). Utworzysz tabelę przestawną athletes_fights który będzie miał fight_id i athlete_id kolumny. Ponadto ta tabela przestawna może mieć wartość winner_id i a draw kolumna. Remis może domyślnie wynosić 0, 1, jeśli walka jest remisem. Mógłby również win_method (może nawet stworzyć do tego kolejną tabelę i zrobić to win_method_id), win_round, win_time.

Sprawdź sekcję relacji w dokumentach Laravela, jeśli jeszcze tego nie masz.

Twój model byłby więc… Event Fight Athlete