我正在使用CakePHP(2.2我认为)并且我很难知道在哪里放置一个函数。这是一个在每个页面加载时调用的函数。基本逻辑是
请求页面 加载页面模板 加载包括标题 检查是否已设置cookie。 如果设置了cookie,请使用其中的值 如果尚未设置cookie,则从数据库加载一个值并保存在cookie中 将cookie值保存在配置值中以在整个页面中使用 继续加载页面
基本上该功能是设置配置值。我试图创建一个帮助程序,当我在标题视图中调用它时,它很好地工作 - 但是一旦我尝试访问cookie帮助程序它就不起作用。
我将代码移入app控制器并在beforefilter()函数上调用它,但它似乎在一个页面上被调用了几次(尽管这实际上都可以正常工作)。
那么 - 在将任何html绘制到屏幕并且只调用一次之前,我会在哪里放置一个函数来调用它?
非常感谢, 马特。
答案 0 :(得分:1)
beforeFilter
的{p> AppController.php
是正确的地方。正如@zynder所提到的,beforeRender
也应该有用。
绝对只应该按照Cake的请求调用一次beforeFilter
。如果它在beforeFilter
中工作,但它不止一次被调用,你可能做错了什么,你应该调查一下。或者,也许你可能会误以为它每次请求都被执行了不止一次。
为什么你认为beforeFilter
被多次调用?