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

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

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

app/Models/Post.php<?php
  class Post extends Model
  {
    public function category()
    {
      return $this->belongsTo(Category::class);
    }
  }
?>

Получим теперь пост вместе с его категорией:

app/Http/Controllers/PostController.php<?php
  class PostController extends Controller
  {
    public function show()
    {
      $post = Post::find(1);
      dump($post);
      dump($post->category);
    }
  }
?>

Получим все посты, переберем их циклом и выведем их вместе с их категориями:

app/Http/Controllers/PostController.php<?php
  class PostController extends Controller
  {
    public function show()
    {
      $posts = Post::all();
      
      foreach ($posts as $post) {
        dump($post);
        dump($post->category);
      }
    }
  }
?>
Задание 1

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

Задание 2

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

Задание 3

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

Задание 4

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