我目前正在使用CakePHP及其find()方法处理数据库查询的项目。
我目前的情况如下:
我有3个模型:User
,Location
和Order
。连接是User hasOne Location
和User hasMany Orders
。
当我使用find()方法获取User和地址(存储在Location模型中)时,CakePHP返回User,Location和Order Models。就我而言,我不需要订单信息。
所以我的问题是:是否有可能告诉CakePHP不要加入订单模型?
我知道recursive
属性,但如果我将其设置为-1
,CakePHP只返回用户模型,而在递归&gt; = 0的情况下,它返回所有3个模型。< / p>
答案 0 :(得分:2)
解决了包含cakephp的问题。代码如下:
$this->User->Behaviors->load('Containable');
$this->User->recursive = -1;
$this->paginate = array('fields' => array('User.*'),
'contain' => array('Location'=>array('field1', 'field2')
);
$user = $this->Paginator->paginate('User');
答案 1 :(得分:1)
您可以使用解除绑定模型功能来排除所需的模型
在你的情况下:
$this->User->unbindModel(array('hasMany' => 'Orders'));
常见的
$this->User->unbindModel(
array(
'hasMany' => array('Model1','Model2'),
'hasOne' => array('Model1','Model2'),
'belongsTo' => array('Model1','Model2'),
)
);