Обратная связь один ко многим в Laravel


Пусть у нас опять есть таблица с категориями и таблица с постами. В предыдущих уроках мы говорили, что каждая категория имеет много постов. Но это зависит от точки зрения.

Если посмотреть со стороны поста, то каждый пост принадлежит одной категории. Это значит, что пост можно связать с категорией отношением belongsTo. Давайте сделаем это:

<?php
class Post extends Model
{
public function category()
{
return $this->belongsTo(Category::class);
}
}
?>
Получим теперь пост вместе с его категорией:

<?php
class PostController extends Controller
{
public function show()
{
$post = Post::find(1);
dump($post);
dump($post->category);
}
}
?>
Получим все посты, переберем их циклом и выведем их вместе с их категориями:

<?php
class PostController extends Controller
{
public function show()
{
$posts = Post::all();

foreach ($posts as $post) {
dump($post);
dump($post->category);
}
}
}
?>