CakePHP 2.5插件路由没有加载

时间:2014-07-17 09:01:17

标签: cakephp cakephp-2.5

我正在尝试从2.4更新一个站点到CakePHP 2.5,但由于某种原因它忽略了我的插件中的路由。我已经发现CakePlugin :: loadAll需要更新到以下内容: -

CakePlugin::loadAll(array(array(
    'MyPlugin' => array(
        'routes' => true
    )
)));

然而,它忽略了来自MyPlugin的路径(它们似乎根本没有加载。我的app / Config / routes.php文件中有CakePlugin::routes()

我看了一下CakePlugin和CakePlugin :: $ _ plugins似乎将MyPlugin ['routes']设置为false。

任何人都可以解释这里的错误吗?

1 个答案:

答案 0 :(得分:0)

我看了一下CakePlugin :: loadAll()函数,看起来你错误地使用了函数参数。

这是一个实际的功能:

public static function loadAll($options = array()) {
    $plugins = App::objects('plugins');
    foreach ($plugins as $p) {
        $opts = isset($options[$p]) ? (array)$options[$p] : array();
        if (isset($options[0])) {
            $opts += $options[0];
        }
        self::load($p, $opts);
    }
}

哪个转换为 - 对于每个插件:

  • 检查选项是否包含插件名称作为键,如果是,则将其视为插件设置值
  • 如果选项有数字键(0),即没有任何键名的选项,请将其视为全局插件设置并将其添加到每个插件的设置

只需删除选项中的额外数组,就可以了。

CakePlugin::loadAll(array(
    'MyPlugin' => array(
        'routes' => true
    )
));