Связь один ко многим в Laravel
Давайте теперь изучим связь один ко многим. Такая связь образуется, когда запись одной таблицы соответствует многим записям из другой таблицы.
Давайте посмотрим на примере. Пусть у нас есть следующая таблица с категориями:
<$tastr$>
category
id
name
<-tastr->
Пусть также у нас есть следующая таблица с постами:
<$tastr$>
posts
id
title
category_id
<-tastr->
Заюзаем в модели с категориями модель с постами:
<?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);
}
}
?>
Сделайте следующие таблицы:
<$tastr$>
cities
id
name
country_id
<-tastr->
<$tastr$>
countries
id
name
<-tastr->
Свяжите таблицу countries с
таблицей cities отношением
hasMany.