Нисходящая модель отношений Laravel

Я запускаю этот запрос в моем приложении Laravel,

$project = Project::leftJoin('organisation_user', 'organisation_user.organisation_id', '=', 'projects.organisation_id')
                ->where('organisation_user.user_id', '=', ResourceServer::getOwnerId())
                ->whereNotNull('projects.organisation_id')
                ->get();

Это возвращает данные, которые ожидают этого, и я могу затем выполнить эту загрузку в сводных данных для организации, с которой связан проект.

$project->load('organisations');

С этого момента я хочу сделать так, чтобы нагрузка в сводных данных для организаций была возможной, в моей голове кажется, что я хочу спуститься через отношения.

1 ответ

Вы можете пропустить объединение и сделать все сразу, если у вас настроены отношения "многие ко многим" для project а также organization моделей.

$project = Project::has('organizations')->with(['organizations'=> function($query){
    $query->where('user_id', ResourceServer::getOwnerId());
}])->get();

Или измените немного и назовите вложенные отношения.

$organization = Organization::with('projects.organizations')->where('user_id', ResourceServer::getOwnerId())->first();

return $organization->projects;

Если вам нужны дополнительные данные сводной таблицы, вы можете добавить withPivot() к вашим отношениям.

Другие вопросы по тегам