购买具有 $ hasMany 关系的模式。 我无法隐藏Modal中的 $ hasMany ,因为它是必需的。
问题:有时我使用自定义查询时,我不想要 $ hasMany 关系数据。
如何防止在 CakePHP 模型中获取 $ hasMany 关系数据
如何在自定义查询中阻止获取 $ hasMany 关系数据。
购买模式
class Purchase extends AppModel {
/*
Modal Related Code
*/
public $hasMany = array(
'PurchaseProduct' => array(
'className' => 'PurchaseProduct',
'order' => 'PurchaseProduct.created DESC'
)
);
);
购买控制器:在此处使用自定义查询仅获取日期
$PurchaseDate= $this->Purchase->find('all',
array('order' => array('Purchase.date_generated ASC'),
'fields' => array('DISTINCT Purchase.date_generated','Purchase.id')));
即将结果
Array
(
[0] => Array
(
[Purchase] => Array
(
[date_generated] => 1970-01-01
[id] => 9
)
[PurchaseProduct] => Array
(
[0] => Array
(
[id] => 15
[Purchase_id] => 9
[product_id] => 5
[product_name] => ABC
[created] => 2014-08-15 18:51:49
)
)
)
)
必填结果
Array
(
[0] => Array
(
[Purchase] => Array
(
[date_generated] => 1970-01-01
[id] => 9
)
)
)
答案 0 :(得分:2)
使用
防止hasMany关系数据与自定义查询的一种方法$this->recursive = -1;
您需要在查询代码
之前在模型中定义它