在复杂的cakephp模型中排除条件的问题

时间:2010-05-14 08:43:55

标签: cakephp find contains conditional-statements

我对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}}

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'数组中。这有帮助吗?