Usually I let the counter cache do this kind of things, my apps are
not so famous that I will run into problems due to high CPU ussage,
and nowadays disk space is really cheap. For instance I would create a
'votes' table and model, and store there datetime, user id, ip address
and other details of the voter

On 13 mar, 23:47, euromark <dereurom...@googlemail.com> wrote:
> nice catch :)
> i guess thats true
>
> additionally, updateAll() doesnt trigger any callbacks like
> beforeSave() or afterSave().
> probably a good thing in this case, as well
>
> On 13 Mrz., 23:06, Ryan Schmidt <google-2...@ryandesign.com> wrote:
>
> > Nick, that code has a race condition. Two different users looking at the 
> > page at the same time could cause the count to be incremented by only one 
> > total, when you want the count to be incremented by one for each user.
>
> > The method Krissy showed is atomic and does not have this problem.
>
> > On Mar 12, 2011, at 11:28, nurvzy wrote:
>
> > > $this->Product->id = 40;
> > > $this->Product->saveField('vote', $this->Product->field('vote') + 1);
>
> > > Nick
>
> > > On Mar 12, 9:36 am, Krissy Masters wrote:
> > >> $this->Product->updateAll(array('Product.vote'=>'Product.vote+1'),
> > >> array('Product.id'=>40));

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to