php - 在 CakePHP 中多次提交请求后将变量设置为静态?

标签 php cakephp model static controller

我尝试在 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/

相关文章:

php - 使用 CakePHP 运行一个 sql server 存储过程

php - JSON PHP 数组到 Javascript

php - WordPress:- get_the_date() 函数返回错误的日期

php - 如何在 PHP 中显示整数的二进制值

php - 使用 CakePHP 2 的特征和命名空间的正确方法是什么?

c++ - Qt 在 QTableView 中设置自定义小部件

jquery - CodeIgniter 中调用成员函数错误

swift - 如何在 Swift 中将数据从一个模型传递到另一个模型?

php - 如何使用 %% 搜索通过包含多个值的数组查找字段

session - 如何在cakephp 3.0 中删除 session ?