Laravel hasOneThrough или получить отношения через промежуточную таблицу - PullRequest
0 голосов
/ 28 апреля 2020

Проекты имеют внешний ключ client_id с clients.id

Клиенты имеют внешний ключ group_id с groups.id

Как получить доступ к этой взаимосвязи из Project модель, в которой я могу получить группу, к которой принадлежит проект, через связанный клиент?

Я пробовал следующие варианты:

public function group()
{
    return $this->hasOneThrough(
        'App\ClientGroup', // final table
        'App\Client', // intermediate table
        'group_id', // fk intermediate table
        'id', // fk final model
        // probably not right
        'client_id', 
        'id'
    );
}

Возвращается NULL, когда я пытаюсь получить доступ к связи через:

Project::findOrFail(2)->group;

Проекты: enter image description here

Клиенты: enter image description here

Группы: enter image description here

...