Пользователь принадлежит группе многих
Задача принадлежит пользователю ToMany (псевдоним «Получатели»)
Задача принадлежит группе ToMany
Это система управления задачами. Задача может быть выдана либо конкретным пользователям, либо именованным группам пользователей.
Сейчас я пытаюсь найти задачи, принадлежащие текущему пользователю ИЛИ группе, которая текущий пользователь является участником (все задачи, относящиеся к конкретному пользователю). У меня есть идентификатор пользователя и список групп, членом которых является пользователь.
Мне удалось заставить его работать, используя следующий код:
Код: Выделить всё
$queryOptions = [
'contain' => [
'Recipients', 'Groups'
]
];
$tasksForUser = $this->Tasks->find('all', $queryOptions)->matching('Recipients', function ($q) use ($user_id) {
return $q->where(['Recipients.id' => $user_id]);
})->toArray();
$tasksForGroup = $this->Tasks->find('all', $queryOptions)->matching('Groups', function($q) use ($group_ids) {
return $q->where(['Groups.id IN' => $group_ids]);
})->toArray();
$this->set('tasks', array_merge($tasksForUser, $tasksForGroup));
Заранее спасибо,
Дэйв
Подробнее здесь: https://stackoverflow.com/questions/275 ... akephp-3-0
Мобильная версия