Хочу(для тренировки,первое приложение) Сделать типа турнирной таблицы различных команд,должны быть команды и матчи между ними. Хочу понять,как сделать сидинг в матчи,сидинг в команды уже сделан вот так:
<?php
/** @var \Illuminate\Database\Eloquent\Factory $factory */
$factory->define(App\Team::class, function (Faker\Generator $faker) {
$team_example = ['Dinamo','Schacter','Zorya','Stal','Vorskla','Olimpik','Mariupol','Zvezda','Karpaty','Chernomorets','Veres'];
return [
'name' => $faker->unique()->randomElement($team_example),
'score' => $faker->numberBetween($min = 1, $max = 15)
];
});
Это фабрика и вот сама функция run:
public function run()
{
factory(App\Team::class,11)->create();
}
По моим(наверное не самым лучшим) предположениям в таблице матч должно быть два внешних ключа(команда1 и команда2) и связаны они должны быть Многие-ко-Многим
Реализовал я это вот так:
public function up()
{
Schema::create('matches', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('first_team_id');
$table->unsignedInteger('second_team_id');
$table->foreign('first_team_id')->references('id')->on('team');
$table->foreign('second_team_id')->references('id')->on('team');
$table->date('match_date');
});
}
И еще в модели Team:
public function matches()
{
return $this->belongsToMany('App\Match');
}
Вопроса два, правильно ли я построил структуру и как делать сидинг в таблицу matches?