CakePHP 3.0 Configure::write()不保留从一篇文章到下一篇文章的键/值?
每次处理post时,代码都会通过我自己的CakePHP 3.0 Configure::write()不保留从一篇文章到下一篇文章的键/值?,php,session,cakephp,cakephp-3.0,Php,Session,Cakephp,Cakephp 3.0,每次处理post时,代码都会通过我自己的MyController扩展AppController类中的函数运行。该函数调用该函数以获取唯一的上下文编号。这个想法是,这个数字应该从一个post保留到下一个post(或者从一个控制器类函数运行到下一个)。但是,Configure::check()总是失败,并且unique32总是重新创建,因此此函数总是返回1 有人知道如何让Configure::write()从一篇文章保留到下一篇文章吗 public function getUnique32() {
MyController扩展AppController
类中的函数运行。该函数调用该函数以获取唯一的上下文编号。这个想法是,这个数字应该从一个post保留到下一个post(或者从一个控制器类函数运行到下一个)。但是,Configure::check()
总是失败,并且unique32总是重新创建,因此此函数总是返回1
有人知道如何让Configure::write()
从一篇文章保留到下一篇文章吗
public function getUnique32() {
if (!Configure::check('unique32')) {
$unique32 = 0;
echo "unique32 starts at 0";
} else {
$unique32 = Configure::read('unique32');
echo "unique32 is $unique32";
}
if (++$unique32 >= 0xffffffff) {
$unique32 = 0;
echo "unique32 is reset to 0";
}
Configure::write('unique32', $unique32);
return $unique32;
}
Class
Configure
不会在页面请求之间保留数据。改用class会话
在CakePHP 3.x中,您的代码应编写如下:
public function getUnique32() {
$session = $this->request->session();
if (!$session->check('unique32')) {
$unique32 = 0;
echo "unique32 starts at 0";
} else {
$unique32 = $session->read('unique32');
echo "unique32 is $unique32";
}
if (++$unique32 >= 0xffffffff) {
$unique32 = 0;
echo "unique32 is reset to 0";
}
$session->write('unique32', $unique32);
return $unique32;
}
对于CakePHP2.x,您可以在代码中用一个类替换另一个类
从Cookbook 3.x中: