我应该从哪里调用CakeResponse :: disableCache()?

时间:2013-02-04 10:16:48

标签: cakephp

我一直幸福地从CakeResponse::disableCache(); beforeFilter()调用AppController.php来禁用浏览器缓存,据我所知,它已经运行良好。

但是,自升级到PHP5.4以来,我收到以下严格警告:

Strict (2048): Non-static method CakeResponse::disableCache() 
should not be called statically, assuming $this from incompatible 
context [APP/Controller/AppController.php, line 53]

该功能似乎仍然有效,但错误告诉我,我误解了一些非常基本的东西,并且可能有不同的(更好的)方法。

因此,如果我需要在应用程序范围内禁用浏览器缓存(例如:no-store, no-cache, must-revalidate等等),那么在Cake 2.3中执行此操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

为什么不访问CakeResponse对象呢?它是如何在OOP上下文中使用的?作为控制者的一部分:

$this->response

所以在你的情况下:

$this->response->disableCache();

文档中还有很多示例 - 例如http://book.cakephp.org/2.0/en/controllers/request-response.html#interacting-with-browser-caching

你在提问之前读过这本书吗?