mashletov
@mashletov
Math.random()

Как сделать поиск по полю основной модели ИЛИ в hasMany модели?

Есть модель Task(id, author_id)
Есть модель Subscriber (id, task_id, user_id)

Соответственно у Task может быть несколько Subscribers, а может и не быть.
public function subscribers()
 {
        return $this->hasMany('\App\Models\Subscriber', 'task_id');
}


Как мне сделать запрос, чтобы найти все задачи где Auth::user()->id ИЛИ автор ИЛИ подписчик?

PS Текущий вариант без учета подписчиков:
$tasks = Task::filter($filter)
            ->with('author', 'subscribers')
            ->where('author_id', Auth::user()->id)
            ->orderBy('status')
            ->orderBy('level', 'desc')
            ->orderBy('created_at', 'desc')
            ->get();
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
Вам нужен метод orWhereHas.
https://laravel.com/docs/5.4/eloquent-relationship...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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