繁体   English   中英

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

[英]How to prevent get hasMany relation data when using Custom Query

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

防止具有自定义查询的hasMany关系数据的一种方法是使用

$this->recursive = -1;

您需要在模型中在查询代码之前定义它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM