Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pplrPmMRDEL 190 of 252 menu
◀ ▶

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

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

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

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Category extends Model { protected $with = ['posts']; public function posts() { return $this->hasMany(Post::class); } } ?>

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

<?php $category = Category::find(1); foreach ($category->posts as $post) { dump($post->title); } ?>

Уже загруженную коллекцию постов можно фильтровать в PHP без нового запроса к базе:

<?php $category = Category::find(2); $posts = $category->posts->where('id', '>', 2); dump($posts); ?>

Для вашей модели юзера задайте жадную загрузку профиля по умолчанию через $with.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить