使用自定义查询时如何防止获取hasMany关系数据

时间:2014-08-20 11:51:51

标签: php cakephp model

购买具有 $ 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
                )
        )
)

1 个答案:

答案 0 :(得分:2)

使用

防止hasMany关系数据与自定义查询的一种方法
$this->recursive = -1;

您需要在查询代码

之前在模型中定义它