вот мое сдерживаемое состояние
$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: он уменьшает метод поиска - как бы я ни думал после правильного размещения, я думаю, что мне нужно удалить рекурсивный
2) У меня есть четыре user_status в таблице User_Status 1) ожидание 2) внимание 3) блок 4) Завершите, который я хочу найти транзакции, отфильтрованные по Buy_status_id или seller_status_id
Я не знаю, как создать новое поведение - об этом есть небольшая статья Использование "Контейнера"