1

私はcakephpにかなり慣れていませんがfind、モデルの複雑な関数に問題があります。

私はGroupsそれぞれの数を含む数を持っておりUsers、各グループは数を作ることができますOrders。各注文は、 (ユーザーに関連する)とOrderAmountsを含むいくつかの注文で構成されます。amountuser_id

Orderを検索し、そのOrderに関連するグループ内のすべてのユーザーとそのユーザーに対応する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を使用してユーザーを除外する条件をどこに配置するかがわかりません。条件をcontains部分に配置すると、モデルから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'
        )
    ));
4

1 に答える 1

0

チュートリアルのこの例を見てください:

$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%')
        )
    )
)

));

すべての条件が「contain」配列内にあることに注意してください。それは役に立ちますか?

于 2010-05-14T10:33:45.383 に答える