Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp 3-所有模型的变量_Cakephp_Cakephp 3.x - Fatal编程技术网

Cakephp 3-所有模型的变量

Cakephp 3-所有模型的变量,cakephp,cakephp-3.x,Cakephp,Cakephp 3.x,在cakephp2.x中,我可以在appmodelpublic$someVar=false中定义一个变量并且在所有型号中都可以访问。我甚至可以访问/设置任何型号的控制器:例如 $this->User->someVar = true; 既然没有应用程序模型,那么有没有办法在cake 3中实现同样的效果呢。我已经设置了全局事件侦听器,如下所示 因此,目的是要有一个变量,可以在这些全局侦听器中访问,所有模型的回调以及从控制器到模型对象的回调-类似于蛋糕2:对于应用模型的回调,所有模型的

在cakephp2.x中,我可以在appmodel
public$someVar=false中定义一个变量并且在所有型号中都可以访问。我甚至可以访问/设置任何型号的控制器:例如

$this->User->someVar = true;
既然没有应用程序模型,那么有没有办法在cake 3中实现同样的效果呢。我已经设置了全局事件侦听器,如下所示

因此,目的是要有一个变量,可以在这些全局侦听器中访问,所有模型的回调以及从控制器到模型对象的回调-类似于蛋糕2:对于应用模型的回调,所有模型的回调和从控制器的回调分别

编辑:不希望使用
Configure


谢谢

看来我已经明白了

创建行为并将其加载到初始化全局事件中。类似于这里的示例

这样,它将在所有模型和回调中可用。在该行为中创建一个变量
public$someVar=null
。但是,无法直接访问行为的变量(因为它被视为关联)

因此,您可以定义方法来设置/获取值

// inside Behavior
public function setSomeVar($val = null) {
    if ($val === null) {
        return $val;
    }

    return $this->myVar = $val;
}
访问/修改该变量

// inside callbacks/event listeners
$event->subject()->setSomeVar();       // to get
$event->subject()->setSomeVar('smth'); // to set

// from controller
$this->Users->setSomeVar();          // to get
$this->Users->setSomeVar('smth');    // to set