Получение данных связь один ко многим в 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); } } } } ?>

Для таблиц, созданных в предыдущем уроке получите все страны вместе с их городами.

Передайте полученные данные в представление и выведите их в виде следующей верстки:

<div> <h2>country1</h2> <ul> <li>city11</li> <li>city12</li> <li>city13</li> </ul> </div> <div> <h2>country2</h2> <ul> <li>city21</li> <li>city22</li> <li>city23</li> </ul> </div> <div> <h2>country3</h2> <ul> <li>city31</li> <li>city32</li> <li>city33</li> </ul> </div>