Убедитесь, что уровень отладки в app / config / core.php установлен на 2, чтобы увидеть вызовы базы данных.
1) Вы можете использовать Контейнерное поведение , в этом случае вынужно поместить это в модель вашего предмета:
var $actsAs = array('Containable');
и это в ваш контроллер предметов:
$items = $this->Item->find('all'
, array (
'contain' => array('Order' => array('Payment'))
, 'conditions' => array('Payment.id' => $paymentId)
)
)
Однако я подозреваю, что это сделает левое соединение с таблицей платежей (какэто имеет много отношений).Таким образом, вы не будете фильтровать элементы в любом случае.
2) Если вы не можете заставить работать содержимое, тогда я часто использую объединения explict (прочитайте эту статью nake on joins ) в моих запросах поиска.Таким образом, в вашем контроллере Предметов у вас будет:
$items = $this->Item->find('all'
, array (
, 'joins' => array(
array(
'table' => 'payments'
, 'alias' => 'Payment'
, 'type' => 'INNER'
, 'conditions' => array(
'Option.id = Payment.option_id'
)
)
)
, 'conditions' => array('Payment.id' => $paymentId)
)
)
Возможно, вам также потребуется указать объединение в таблице параметров.