问题
i'm developing simple cms application.
i want to integrate "number of hits" for some of the records, so when view of the record is showed in browser, hits field in table should be updated by 1.
in controller, i tryed with:
$data = array( 'Publication' => array( 'hits' => ' hits + 1') );
$this->Publication->save( $data );
... but no luck, since cake tryes to update field hits with value hits + 1.
can you tell me where i'm wrong, and how to incrementaly update field hits.
thank you in advance!
回答1:
Use updateAll:
$this->Publication->updateAll(
'`Publication`.`hits` = `Publication`.`hits` + 1',
array('Publication.id' => $id)
);
回答2:
ok, i solved it
$this->Publication->updateAll(array('Publication.hits'=>'Publication.hits+1'), array('Publication.id'=>$id));
回答3:
Above answer doesn't work for cakephp 2.6.0, this works fine
$this->Product->updateAll(
array('Product.hits' => 'Product.hits' + 1),
array('Product.id' => $id)
);
来源:https://stackoverflow.com/questions/3185049/count-number-of-hits