我尝试在 AppController 中声明一个静态和公共(public)变量,如下所示
class AppController extends Controller {
public static $var = 0;
}
然后访问其子类的 Controller 中的静态变量。
我的 CTP 文件有多个更改静态变量值的提交按钮。
例如。
button A -> $var ++
button B -> $var --
我还尝试了 session 并在应用程序 Controller 的 beforefilter 函数中启动它。 仍然在多次提交时, session 变量再次重置。
class AppController extends Controller {
public function beforeFilter() {
parent::beforeFilter();
$this->Session->write('var', 0);
}
}
在这两种情况下(静态变量或 session ),静态变量只能是+1、0 或-1。 AppController 似乎是在页面刷新时加载的。 我真正想要的是在多次按下按钮后静态变量可以是 + 或 - 大于 1,并且静态变量仅在浏览器关闭后才重置。
最佳答案
要在需要时通过按钮设置值,您应该在某些 Controller 操作
中而不是在beforeFilter()
中使用post 方法。
例子:
public function foo() {
if ($this->request->is('post')) {
// get posted value from $this->request
$this->Session->write('var', 'value');
}
}
然后你可以像这样读取任何 Controller 中的值:
$value = $this->Session->read('var');
关于php - 在 CakePHP 中多次提交请求后将变量设置为静态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39221116/