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