Получение данных связь один ко многим в Laravel


В предыдущем уроке мы связали категории и их посты отношением hasMany. Давайте теперь в контроллере получим какую-нибудь категорию:

<?php
class CategoryController extends Controller
{
public function show()
{
$category = Category::find(1);
dump($category);
}
}
?>
Вместе с категорией мы автоматически получим коллекцию постов:

<?php
class CategoryController extends Controller
{
public function show()
{
$category = Category::find(1);
dump($category->posts); // коллекция постов
}
}
?>
Давайте переберем коллекцию с постами через цикл:

<?php
class CategoryController extends Controller
{
public function show()
{
$category = Category::find(1);

foreach ($category->posts as $post) {
dump($post->title);
}
}
}
?>
Давайте теперь получим коллекцию категорий. Переберем ее циклом, для каждой категории получим коллекцию постов и также переберем ее циклом:

<?php
class CategoryController extends Controller
{
public function show()
{
$categories = Category::all();

foreach ($categories as $category) {
dump($category->name);

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