ここに私の封じ込め可能な条件があります
$userStatusCondition = array('AND' => array(
'OR'=> array(
'TransactionStatus.buyer_status_id'=>$user_status_id,
'TransactionStatus.seller_status_id'=>$user_status_id,
)
)
);
マージ条件 (その他の条件 + user_status 条件)
$transactions = $this->Transaction->find('all',array(
'conditions'=> Set::merge($otherConditions, $userStatusCondition),
'recursive'=>2));
TransactionModel で設定しました
public $actsAs = array('Containable');
public $belongsTo = array(
'UserStatus' => array(
'className' => 'UserStatus',
'foreignKey' => 'buyer_status_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'UserStatus' => array(
'className' => 'UserStatus',
'foreignKey' => 'seller_status_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
);
問題
1) 私は再帰を使うのが好きではありません 2: それは find メソッドを減少させます - どのように私は再帰を削除する必要があると思います
2) User_Status テーブルに 4 つの user_statuses を持っています4)buyer_status_idまたはseller_status_idでフィルタリングされたトランザクションを検索することを完了します
新しい動作を作成する方法はわかりません - それについての小さな記事があります Using Contain