使用 counterCache 保存多行

Saving multiple row with counterCache

我在 cakePHP 2.6.4 中遇到 counterCache 问题。 我需要将多行保存到 bloggers_products table 并且我想为每个产品增加 Bloggers.products_all。现在 products_all 总是递增一次。

BloggersProduct belongsTo Blogger
Blogger hasMany BloggersProduct 

Bloggers产品型号

'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));

当我编辑或删除任何设置为真值的相关产品计数器时。

答案很简单:

$this->YourModel->cacheQueries = false;