Мне нужно знать синтаксис Laravel Eloquent для запроса вложенных отношений и возврата результатов - PullRequest
2 голосов
/ 24 февраля 2020

У меня есть следующие модели

  • Компания
  • Контакт
  • Билет
  • Работа
  • Пользователь

Работа принадлежит билету, билет принадлежит контакту или пользователю (Polymorphi c), контакт принадлежит компании. Я могу получить все задания для конкретной компании с помощью

Company::with('contacts.tickets.jobs')->where('id', 10)->get();

Я хочу получить список всех заданий в системе для конкретной компании. Я пробовал следующее, но это не работает, он возвращает все рабочие места

Job::with(['ticket' => fn($b) => $b->whereHasMorph('creator', [App\Contact::class],fn($b) => $b->where('company_id', 10))])->get();

1 Ответ

0 голосов
/ 25 февраля 2020
$companyId = 6;

Job::whereHas('ticket', fn($b) => 
    $b->whereHasMorph('creator', [App\Contact::class], fn($c) => 
        $c->where('company_id', $companyId)
    )
   )->with(['ticket.creator.company'])->get();
...