我对 cakephp 还很陌生,find
我的模型上有一个复杂的功能问题。
我有一个数,Groups
每个包含一个数Users
,并且每组可以做一个数Orders
。每个订单由多个订单组成,OrderAmounts
其中包含一个amount
和一个user_id
(与用户相关)。
我有一个查找,它找到了一个订单,并返回组中与该订单相关的所有用户以及与该用户对应的任何 OrderAmounts:
$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'
)
)
)
)
));
我现在要做的是返回组中与上述订单相关的所有用户的列表,这些用户没有相应的 OrderAmount。
到目前为止,我有这个,但我不确定在哪里放置条件以排除具有 OrderAmounts 的用户 - 如果我将条件放在包含部分中,它只会从模型中删除 OrderAmounts,如果我将它们放在顶层在 find 中的条件我得到一个错误。
$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'
)
));