Обратная связь один ко многим в 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); } } } ?>

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

Получите город вместе с его страной.

Получите все города вместе с их странами.

Получите все города с населением больше 100 тысяч вместе с их странами.