Связь один ко многим в Laravel

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

Давайте посмотрим на примере. Пусть у нас есть следующая таблица с категориями:

category

  • id

Пусть также у нас есть следующая таблица с постами:

posts

  • id
  • title

Заюзаем в модели с категориями модель с постами:

<?php use App\Models\Post; class Category extends Model { } ?>

Каждая категория имеет много постов, которые ссылаются на нее. Давайте в модели с категориями сделаем метод для получения постов:

<?php use App\Models\Post; class Category extends Model { public function posts() { } } ?>

Пропишем в этом методе связь через отношение hasMany:

<?php class Category extends Model { public function posts() { return $this->hasMany(Post::class); } } ?>

Сделайте следующие таблицы:

cities

  • id
  • name

countries

  • id

Свяжите таблицу countries с таблицей cities отношением hasMany.