2015-05-19 69 views
0

我在cakePHP 2.6.4中有counterCache問題。 我需要保存多行到bloggers_products表,我想增加每個產品的Bloggers.products_all。現在,products_all總是增加一次。用counterCache保存多行

BloggersProduct belongsTo Blogger 
Blogger hasMany BloggersProduct 

BloggersProduct型號

'Blogger' => array(
     'className' => 'Blogger', 
     'counterCache' => array(
      'products_all' => true, 
      'reviews' => array('NOT' => array('BloggersProduct.review' => '0000-00-00')) 
     ) 
     ) 

我試圖保存在迴路上與saveMany數據。

 $i = 0; 
     $save = []; 
     $this->loadModel('BloggersProduct'); 
     foreach ($data as $product) { 
//    $save = []; 
//    $save['product_id'] = intval($product); 
//    $save['blogger_id'] = $blogger_id; 
//    $save['send_at'] = date('Y-m-d', time()); 
//    
//    $this->BloggersProduct->create(); 
//    $this->BloggersProduct->save($save, array('counterCache' => true)); 

      $save[$i]['product_id'] = intval($product); 
      $save[$i]['blogger_id'] = $blogger_id; 
      $save[$i]['send_at'] = date('Y-m-d', time()); 
      $i++; 
     } 

     debug($save); 

     $res = $this->BloggersProduct->saveMany($save, array('counterCache' => true)); 

當我編輯或刪除任何相關產品計數器設置爲真正的價值。

+0

我嘗試在博客表,使用默認設置蛋糕設置bloggers_product_count並得到同樣的結果。 saveAll,saveMany,設置ClassName,foreignKey,檢查afterSave回調 - counterCache = true。我浪費了整整一天的時間嘗試一切,但仍然沒有做一步... – Sojtin

回答

0

的回答很簡單:

$this->YourModel->cacheQueries = false;