0

我有一个文件/类::方法(HelperAdmin.php/HelperAdmin::menuItem()),它从数据库中提取数据以生成主菜单和子菜单。我必须在生成菜单后获取此数据,但我不想调用此方法两次。所以我在 HelperAdmin 类中创建了一个静态数组。它看起来像这样:

class HelperAdmin {
        static $arrMenuItems;
                ...
                public static function menuItem() {
                      ....get $items....
                     self::$arrMenuItems = $items;
                     return $items;
                }
        ....
}

但这里有一个问题。如果我再次调用 METHOD:

$items=HelperAdmin::menuItem();

...我可以获取数据。另一方面,如果我尝试通过静态数组获取数据:

$items=HelperAdmin::$arrMenuItems;

...它只是返回空值。

我希望看到一些想法。毕竟,如果你认为在这里使用静态变量(从 Yii 架构视图)不是最好的解决方案,我想听听你的建议!

@bool.dev:好的,想象以下方案:1.我们有主文件

/modules/admin/views/layouts/admin.php 

这本质上是我们的后端模板。2.我们这里有助手:

/modules/admin/components/HelperAdmin.php 

其中包含: * 类 HelperAdmin、* menuItem() 方法和 * 类静态数组 $arrMenuItems。通过调用 HelperAdmin::menuItem() 返回此 ARRAY 的内容。我们希望从 HelperAdmin 类中获取数据两次: 1. 在admin.php中生成菜单时;2. 作为内容的一部分,我们使用变量$content将其放在此文件中。$content 又在另一个文件中生成:

/modules/admin/views/generator/index.php

如您所见,我们的页面由模板文件 /modules/admin/views/layouts/admin.php 和从 /modules/admin/views/generator/index.php 获取的数据 ($content) 组合而成。首先我得到菜单的数据:

HelperAdmin::menuItem();
$items=HelperAdmin::$arrMenuItems;
$this->widget(....
        'items'=>$items,
        ...),
    ));

没关系。请注意,在此之后已经在 HelperAdmin 中生成了一个静态数组 $ arrMenuItems 。接下来,我尝试在文件 /modules/admin/views/generator/index.php 中获取相同的数据(之前生成的 $arrMenuItems),以将其放置为$content

$items=HelperAdmin::$arrMenuItems

在这里我无法得到它,如上所述。好吧,我希望它使情况更清楚(?)。

4

0 回答 0