我对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:
$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'
)
));
我现在想要做的是返回组中与上述订单相关的所有用户的列表,这些用户没有相应的OrderAmount。
到目前为止,我有这个,但我不知道在哪里放置条件来排除使用OrderAmounts的用户 - 如果我将条件放在contains部分中它只是从模型中删除OrderAmounts,如果我把它们放入查找中的顶级条件我收到错误。
{{1}}
答案 0 :(得分:0)
从tutorial:
看一下这个例子$this->User->find('all', array(
'contain'=>array(
'Profile',
'Account' => array(
'AccountSummary'
),
'Post' => array(
'PostAttachment' => array(
'fields' => array('id', 'name'),
'PostAttachmentHistory' => array(
'HistoryNotes' => array(
'fields' => array('id', 'note')
)
)
),
'Tag' => array(
'conditions' => array('Tag.name LIKE' => '%happy%')
)
)
)
));
请注意,所有条件都在'contains'数组中。这有帮助吗?