我在cakePHP 2.6.4中遇到了counterCache的问题。
我需要将多行保存到bloggers_products
表,我想为每个产品增加Bloggers.products_all
。现在products_all
总是增加一次。
BloggersProduct belongsTo Blogger
Blogger hasMany BloggersProduct
BloggersProduct Model
'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 :(得分:0)
答案很简单:
$this->YourModel->cacheQueries = false;