cakephp我在哪里调用每个页面需要的全局函数

时间:2014-07-03 08:08:17

标签: cakephp cookies

我正在使用CakePHP(2.2我认为)并且我很难知道在哪里放置一个函数。这是一个在每个页面加载时调用的函数。基本逻辑是

请求页面 加载页面模板 加载包括标题  检查是否已设置cookie。 如果设置了cookie,请使用其中的值 如果尚未设置cookie,则从数据库加载一个值并保存在cookie中 将cookie值保存在配置值中以在整个页面中使用 继续加载页面

基本上该功能是设置配置值。我试图创建一个帮助程序,当我在标题视图中调用它时,它很好地工作 - 但是一旦我尝试访问cookie帮助程序它就不起作用。

我将代码移入app控制器并在beforefilter()函数上调用它,但它似乎在一个页面上被调用了几次(尽管这实际上都可以正常工作)。

那么 - 在将任何html绘制到屏幕并且只调用一次之前,我会在哪里放置一个函数来调用它?

非常感谢, 马特。

1 个答案:

答案 0 :(得分:1)

beforeFilter的{​​p> AppController.php是正确的地方。正如@zynder所提到的,beforeRender也应该有用。

绝对只应该按照Cake的请求调用一次beforeFilter。如果它在beforeFilter中工作,但它不止一次被调用,你可能做错了什么,你应该调查一下。或者,也许你可能会误以为它每次请求都被执行了不止一次。

为什么你认为beforeFilter被多次调用?