Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why doesn't Cache::clear() clear my (view) cache? (CakePHP)

Even though it's documented that CakePHP will automatically clear the view caches when a model is updated, it doesn't.

It is important to remember that Cake will clear a cached view if a model used in the cached view is modified. For example, if a cached view uses data from the Post model, and there has been an INSERT, UPDATE, or DELETE query made to a Post, the cache for that view is cleared, and new content is generated on the next request.

Even calling the suggested Cache::clear() method manually does nothing. How do I clear the view cache in Cake?

(As of version 1.2.2.8120. Looking at the repository commits, even .8256 should have this problem.)

like image 389
deceze Avatar asked Nov 21 '25 01:11

deceze


1 Answers

Use clearCache(), possibly automatically in a model afterSave callback:

// model file:
function afterSave($created) {
    clearCache();
}

(Please also document other available solutions, this is the only one I could find.)

like image 137
HeMightBeTodd Avatar answered Nov 24 '25 04:11

HeMightBeTodd



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!