Я пытаюсь добавить "простые" отношения в мою модель маршрута, но я, должно быть, что-то упустил, потому что она не работает.
Я хочу, чтобы в моем маршруте было много шагов, и в шагах должен быть только один маршрут, но мой код не находит никаких шагов.Что я пропустил?
таблица маршрутов:
Schema::create('routes', function (Blueprint $table) {
$table->increments('id');
$table->string('uuid')->unique();
$table->decimal('start_lat', 11, 8);
$table->decimal('start_lng', 11, 8);
$table->decimal('end_lat', 11, 8);
$table->decimal('end_lng', 11, 8);
$table->string('start_address');
$table->string('end_address');
$table->integer('distance');
$table->integer('duration');
$table->timestamps();
});
таблица шагов:
Schema::create('steps', function (Blueprint $table) {
$table->increments('id');
$table->string('uuid')->unique();
$table->integer('route_id')->unsigned();
$table->foreign('route_id')->references('id')->on('routes');
$table->integer('distance');
$table->integer('duration');
$table->decimal('start_lat', 11, 8);
$table->decimal('start_lng', 11, 8);
$table->decimal('end_lat', 11, 8);
$table->decimal('end_lng', 11, 8);
$table->string('instructions');
$table->text('polyline');
});
Модель маршрута:
public function steps() {
return $this->hasMany(Step::class, 'route_id', 'id');
}
Модель шага:
public function route() {
return $this->belongsTo(Route::class);
}
Как я это называю в контроллере:
$route = Route::all()->where('id', 1)->first();
$steps[] = $route->steps();