Ben CakePHP'nin güncelleme ifadesi bir koşul ekleyebilir miyim?

2 Cevap php

optimistic locking in CakePHP, bunu uygulayan bir davranış binasında bir bıçak alıyorum için herhangi bir destek olacaksa görünmüyor çünkü. Davranışlar içine biraz araştırma yaptıktan sonra, ben sürümü alan değişmediğini kontrol etmek BeforeSave olay bir sorgu çalıştırabilir düşünüyorum.

Ancak, ben daha ziyade güncelleme ifadenin NEREDE maddesini değiştiren tarafından kontrol uygulamak istiyorum

WHERE id = ?

karşı

WHERE id = ? ve version = ?

This way I don't have karşı worry about other requests changing the database record between the time I read the version ve the time I execute the update. It also means I can do one database call instead of two.

I can see that the DboSource.update() method supports conditions, but Model.save() never passes any conditions karşı it.

Ben birkaç seçenek var gibi görünüyor:

  1. beforeSave() onay yapmak ve kurşun geçirmez değil gerçeği ile yaşamak.
  2. Hack my local copy of CakePHP karşı check for a conditions key in the options array of Model.save() ve pass it along karşı the DboSource.update() method.

Right now, I'm leaning in favour of the second option, but that means I can't shvardır my behaviour with other users unless they apply my hack karşı their framework.

Ben daha kolay bir seçenek cevapsız mı?