Задать вопрос
@kirill-93

Условие в eloquent?

Привет, помогите добавить условие.
Есть пользователи, журналы и статьи. Журналы публикуют статьи, а пользователи их читают и могут добавить в избранное.
Модели:
#
class User {
    public function posts()
    {
        return $this->belongsToMany('App\Models\Post')->withTimestamps();
    }
}
class Journal {
    public function posts()
    {
        return $this->hasMany('App\Models\Post');
    }
}
class Post {
    public function journal()
    {
        return $this->belongsTo('App\Models\Journal');
    }
}

Пользователь добавляет посты в прочитанные через belongsToMany (таблица post_user).
Мне нужно получить все посты пользователя по условию и для каждого поста получить его журнал.
Если просто получать посты, то работает вот так:
#
auth()->user()->with(['posts' => function($query) {
        $query->conditions();
}])

Но вот так уже не работает:
#
auth()->user()->with(['posts.entity' => function($query) {
        $query->conditions();
}])

И не работает именно conditions (это мой скоуп с условиями для posts)
Потому что если без условий, то все ок:
#
auth()->user()->with('posts.entity')


Как мне получить посты с их журналами и применить условия к постам?
  • Вопрос задан
  • 132 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
freevital
@freevital
Full-Stack Web Developer
auth()->user()->with(['posts' => function($query) {
        $query->with('entity')->conditions();
}])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы