Запрос по нескольким ассоциациям (ИЛИ) в CakePHP 3.0Php

Кемеровские программисты php общаются здесь
Anonymous
Запрос по нескольким ассоциациям (ИЛИ) в CakePHP 3.0

Сообщение Anonymous »

Я пытаюсь построить (более или менее сложный) запрос с помощью CakePHP 3.0 beta 3. У меня есть следующие объекты:

Пользователь принадлежит группе многих
Задача принадлежит пользователю 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));
CakePHP 3.0 утверждает, что имеет сложную модель ORM, есть ли способ выполнить ее в одном запросе? Это может дать мне возможность на лету отфильтровывать дубликаты.

Заранее спасибо,
Дэйв

Подробнее здесь: https://stackoverflow.com/questions/275 ... akephp-3-0

Вернуться в «Php»