如果您正确声明了关系,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 约定时才有效。