НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗pplrPmMRDEL 137 of 194 menu

Жадная загрузка по умолчанию в Laravel

Иногда требуется постоянная загрузка некоторых отношений при извлечении модели. Для этого нужно определить свойство $with в модели.

Для примера давайте сделаем так, чтобы категории всегда загружались вместе со своими постами:

<?php class Category extends Model { protected $with = ['posts']; public function posts() { return $this->hasMany(Post::class); } } ?>

Теперь при переборе постов лишнего запроса не будет:

<?php class CategoryController extends Controller { public function show() { $category = Category::find(1); foreach ($category->posts as $post) { dump($post); // лишнего запроса не будет } } } ?>
добавить еще условия: $category = Category::find(2); // Загружает с постами (из-за $with) // Фильтруем уже загруженные посты (БЕЗ нового запроса!) $posts = $category->posts->where('id', '>', 2); dump($posts);
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить