在cakephp中访问静态变量

在cakephp中访问静态变量,php,cakephp,Php,Cakephp,Cakephp V2.6 在我当前的项目中,我试图利用一些面向对象的功能。在我的模型modelX中,我创建了一个自定义的find方法,以特定的方式检索结果。然后,我将该数组返回给控制器,并将其提供给视图 我正在实现一个excel插件来导出数据,所涉及的数据与呈现到视图中的数据相同。 在自定义查找中,我将结果分配给模型中的静态变量,然后再将结果返回给控制器。 当我单击我的导出按钮时,我想使用控制器调用modelX方法来返回这个静态数组,该数组可以传递给我的插件以导出数据。然而,我似乎无法做到这一点

Cakephp V2.6

在我当前的项目中,我试图利用一些面向对象的功能。在我的模型modelX中,我创建了一个自定义的find方法,以特定的方式检索结果。然后,我将该数组返回给控制器,并将其提供给视图

我正在实现一个excel插件来导出数据,所涉及的数据与呈现到视图中的数据相同。 在自定义查找中,我将结果分配给模型中的静态变量,然后再将结果返回给控制器。 当我单击我的导出按钮时,我想使用控制器调用modelX方法来返回这个静态数组,该数组可以传递给我的插件以导出数据。然而,我似乎无法做到这一点。我试着在类中声明一个静态变量,但它不起作用。我尝试在其指定的方法中调用变量的
global
,但它不起作用。到目前为止,我找到的唯一解决方法是将变量写入会话,然后我可以随时从任何地方访问会话。虽然这确实有效,但我认为它效率低下。我认为在每次渲染视图时向会话写入一个大数组不是一个好主意,因为它并不总是需要的

在cake中,有没有一种方法可以将数据分配给对象实例外部可用的模型中的变量,以便我执行此操作?

在MyModel中:

public static $x = array('a' => 'b');
在控制器中:

$y = MyModel::$x;
$y = MyModel::getX();
引自php:

与任何其他PHP静态变量一样,静态属性只能是 使用文本或常量初始化;不允许使用表达式。 因此,虽然可以将静态属性初始化为整数或数组 (例如),您不能将其初始化为另一个变量,即 函数返回值,或返回到对象

当需要在返回静态数组之前执行某些表达式时,请使用静态方法。在模型中:

public static function getX() {
    $a = array('a' => 'b');
    $b = array('c' => 'd');
    return array_merge($a, $b);
}
在控制器中:

$y = MyModel::$x;
$y = MyModel::getX();

为什么要将此值指定给模型。它和模型有关吗?如果你在这里展示一些代码会更好。没有必要严格遵守默认的文件结构。您可以创建所需的任何文件和目录。以及这些文件中的类。您可以在这些类中实现所需的任何logix,包括setter/getter.Yes,它与模型相关。我想在何时导出多个模型,我希望通过超类中的Model.variable引用它们