Запрос по нескольким ассоциациям (ИЛИ) в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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