Жадная загрузка по умолчанию
Иногда требуется постоянная загрузка некоторых отношений при извлечении модели. Для этого нужно определить свойство $with
в модели.
Для примера давайте сделаем так, чтобы категории всегда загружались вместе со своими постами:
app/Models/Category.php<?php
class Category extends Model
{
protected $with = ['post'];
public function posts()
{
return $this->hasMany(Post::class);
}
}
Теперь при переборе постов лишнего запроса не будет:
app/Http/Controllers/CategoryController.php<?php
class CategoryController extends Controller
{
public function show()
{
$category = Category::find(1);
foreach ($category->posts as $post) {
dump($post); // лишнего запроса не будет
}
}
}