簡體   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