私はcakephpにかなり慣れていませんがfind
、モデルの複雑な関数に問題があります。
私はGroups
それぞれの数を含む数を持っておりUsers
、各グループは数を作ることができますOrders
。各注文は、 (ユーザーに関連する)とOrderAmounts
を含むいくつかの注文で構成されます。amount
user_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'
)
));