Красноречивый запрос, который запрашивает на основе отношения с отношением - PullRequest
0 голосов
/ 12 июня 2018

Попытка описать мою проблему в названии была трудной.Я имею в виду это.У меня есть 3 таблицы.Работа, дневник, документ.Каждая запись в дневнике имеет отношение к работе.Каждый документ имеет отношение ownTo с дневником.

Как я могу запросить документы, чтобы он возвращал все документы, принадлежащие одному заданию.

Document-> diary_id ссылки Diary-> id - Diary-> ссылки на job_number_id Job-> id

Обе эти индивидуальные отношения установлены и работают.

Я пробовал разные запросы без успеха.

Любая помощь приветствуется.С уважением Finchy70

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Используйте отношение HasManyThrough:

public function documents() {
    return $this->hasManyThrough(Document::class, Diary::class, 'job_number_id');
}

$documents = $job->documents()->paginate(15);
0 голосов
/ 12 июня 2018

Я продолжал исследовать и пробовать разные красноречивые запросы и нашел тот, который работает.Не уверен, насколько это экономично, но это работает.

$documents = $job->diary()
        ->with('job')
        ->join('documents', 'diary_id', '=', 'diaries.id')
        ->select(['documents.*'])
        ->paginate(15);

Если у кого-то есть лучшее решение, пожалуйста, поделитесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...