2010-07-06 5 views
0

Я занимаюсь разработкой простого приложения cms.Количество просмотров

я хочу интегрировать «количество хитов» для некоторых записей, поэтому, когда вид записи показывается в браузере, ударяется поле в таблице, должно быть обновлено 1.

в контроллере, я судимый с :

$ data = array ('Publication' => array ('hits' => 'hits + 1'));
$ this-> Publication-> save ($ data);

... но не повезло, так как торт tryes обновить поле hits хитами значение + 1.

вы можете сказать мне, где я ошибаюсь, и как incrementaly поле обновления hits.

благодарим вас заранее!

ответ

4

нормально, я решил его

$this->Publication->updateAll(array('Publication.hits'=>'Publication.hits+1'), array('Publication.id'=>$id)); 
5

Использование updateAll:

$this->Publication->updateAll(
    '`Publication`.`hits` = `Publication`.`hits` + 1', 
    array('Publication.id' => $id) 
); 
0

Над ответом не работает на CakePHP 2.6.0, это работает отлично

$this->Product->updateAll(
    array('Product.hits' => 'Product.hits' + 1), 
    array('Product.id' => $id) 
); 
+0

Это недопустимый (Cake) Синтаксис PHP. Это не сработает! Вы добавляете 1 к строке. делая всю строку «1». И приведенные выше примеры должны работать отлично. – mark