Если вы правильно объявили отношения, 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 а>.
person
Inigo Flores
schedule
18.12.2015