使用recursive=2可以递归获取深层次关联模型数据,但是没办法设置获取数据的字段和查询条件。
ContainableBehavior是为了解决这个问题而引入的。类似的还有LinkableBehavior。
下面是一个简单的示例。
关系如下:
Deal(hasMany)DealToVendorBranch(belongs to)VendorBranch('')
代码如下:
$this->paginate['Deal']['contain']['DealToVendorBranch']=array(
'VendorBranch' => array(
'VendorBranchDetail' => array('fields' => array('name','address')),
'fields' => array('is_primary'),
)
);
提示:
1) contain关键字只需要在最上层使用;
2) 在ContainableBehavior中只有'fields'和'conditions'起作用,'limit', 'recursive', 'group'和'order'不能正常工作;
3) 不需要设置recursive, ContainableBehavior默认设置递归关系
iefreer