Обратная связь один ко многим в 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 тысяч вместе с их странами.