任何人都有一个想法,为什么Cakephp中的cookie总是会在函数结束后自动删除?
我尝试用函数abc编写一个cookie,其中包括:
$this->Cookie->write('referal', $ref);
在此之前,在过滤器之前的app控制器中,我已按如下方式初始化cookie:
$this->Cookie->name = 'renttycoons';
$this->Cookie->time = 604800; // or '1 week'
$this->Cookie->path = '/';
$this->Cookie->domain = 'rent.local';
$this->Cookie->key = 'qSI232qs*&sXOw!';
但是一旦函数执行结束,cookie就会变空。当我尝试在函数abc结束之前读取cookie时,它就在那里。无论如何都没有删除cookie方法。
答案 0 :(得分:2)
是的,因为Cake in Cake的工作方式:当你使用Cookie-> write()时,它不会直接写入cookie,因为cookie位于用户的浏览器中。只有在视图呈现时才会发送您编写的cookie。因此,当您重定向时,(我猜测cookie不会被发送并因为视图未呈现而被刷新)新请求具有旧的cookie数据。
如果要在蛋糕应用程序中保留一些共享数据,并且每个访问者都是唯一的,请使用SessionComponent。它看起来与Cookie几乎相同:$this->Session->write('referal', $ref);
和$this->Session->read('referal');