Я довольно новичок в CakePHP, и у меня возникла проблема со сложной функцией find
в моих моделях.
У меня есть число Groups
, каждое из которых содержит число Users
, и каждая группа может сделать число Orders
. Каждый заказ состоит из числа OrderAmounts
, которое содержит amount
и user_id
(относительно пользователя).
У меня есть находка, которая находит Заказ и возвращает всех пользователей в Группе, относящихся к этому Заказу, и любые Заказы, соответствующие этому пользователю:
$currentOrder = $this->Order->find('first', array(
'conditions' => array(
'Order.group_id' => $this->Session->read("Auth.User.group_id")
),
'contain' => array(
'Group' => array(
'User' => array(
'OrderAmount' => array(
'OrderAmountType'
)
)
)
)
));
Теперь я хочу вернуть список всех пользователей в группе, имеющих отношение к вышеуказанному заказу, у которых нет соответствующей суммы заказа.
Пока что у меня есть это, но я не уверен, где поставить условие для исключения пользователей с OrderAmounts - если я помещу условия в составную часть, это просто удаляет OrderAmounts из модели, и если я помещаю их условия верхнего уровня в находке я получаю ошибку.
$currentOrderOutstanding = $this->Order->Group->User->find('all', array(
'conditions' => array(
'Group.id' => $this->Session->read("Auth.User.group_id")
),
'fields' => array('User.id'),
'contain' => array(
'OrderAmount',
'Group'
)
));