Если вы правильно объявляли отношения, find()
автоматически загрузит первый уровень связанных моделей, если вы не изменили уровень по умолчанию рекурсии (который является 1) ,
Если это не удается, попробуйте выполнить следующие действия:
$this->Shop->recursive=1;
$this->Shop->find('all',array(
'conditions' => array(
'Shop.loyaltycard' => 0,
)
));
Подробнее о модели атрибута recursive
.
Другой вариант - загрузить Containable поведение, которое позволит вам отфильтровать, какие отношения вы хотите извлечь.
$this->Shop->Behaviors->load('Containable'); //or make your model act as Containable
$this->Shop->contain('Company');
$this->Shop->find('all',array(
'conditions' => array(
'Shop.loyaltycard' => 0,
)
));
Подробнее о ContainableBehavior
.
Кроме того, пожалуйста, измените определение отношения к следующему:
public $belongsTo = array(
'Company'
);
Не уверен, как пустой массив влияет на ваши отношения, но это может привести к сбою. Обратите внимание, что это будет работать, только если вы следовали CakePHP conventions.