Связь один ко многим в 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
.