0

我想在我网站的主页上使用 CakePHP 的基本缓存功能。但是,页面上有一个元素应该根据访问者的位置显示不同的数据,具体取决于访问者的 IP 地址。

您不能将 <cake:nocache> 包裹在控制器中设置的变量周围,这是我之前确定位置并获取数据的地方。因此,我的问题是:我在哪里可以优化设置(会话?)变量以在控制器之前包含访问者位置信息?如何使用此信息为视图的 nocached 部分填充数据数组,同时完全回避不再调用的控制器操作?

任何建议都非常感谢!

4

1 回答 1

0

嗯,好吧,显然 CakePHP 问题对整个世界都没有太大的兴趣:2 天内只有 8 次观看 :(

无论如何,我进一步调查并发现,虽然 <nocache> 标签不允许您包围变量以使它们动态化,但它们确实允许您对元素或助手进行非缓存调用。因此,我将页面的相关部分提取到一个元素中,并通过调用辅助函数填充数据数组。

这确实意味着我必须从助手内部访问模型

$this->Modelname =& ClassRegistry::init("Modelname");

而且我不确定这一定是尊重的 CakePHP 和/或 MVC 做事方式,但至少它是解决方案的某种方式!

于 2011-06-25T20:15:14.330 回答