Как использовать условие во многих отношениях многих людей? - PullRequest
0 голосов
/ 22 апреля 2019

У меня три модели Компания, Пользователь, Проект

companies:
id, name
users: 
id, name
projects: 
id, title, company_id

Сводная таблица

project_members: 
id, user_id, project_id

пользователи и проекты отношения много ко многим.
Как получить все проекты со специальным идентификатором user_id, присоединенным к проекту или нет.

Вот мой код получения списка. Проекты, к которым пользователь не присоединился, но этого не ожидалось:

$project = Project::with(['company', 'users'])
               ->whereHas('users', function ($query) use ($user) {
                   $query->where('id', '!=', $user->id);
               });

Надеюсь, вы могли бы помочь мне и объяснить, как использовать с , , где в Laravel.

1 Ответ

0 голосов
/ 22 апреля 2019

Project :: with (['users' => function ($ q)]) загружает все проекты и пользователей, удовлетворяющих подзапросу.В этом случае все проекты и пользователь с выбранным идентификатором, если он существует

И Project :: whereHas ('users', function ($ q) {}) загружает только проекты, удовлетворяющие подзапросу пользователя, в вашcase: проекты, в которых пользователю назначен выбранный идентификатор

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