Cakephp在帮助器内调用组件方法

cor*_*elv 0 php components cakephp helper

我使用Cakephp 2.1,我需要从视图助手调用一个驻留在插件中的组件方法:

该组件在这里:

/app/Plugin/Abc/Controller/Component/AbcComponent.php

帮助者在这里:

/app/View/Helper/SimpleHelper.php

我试过里面的帮手:

App::import('Component', 'Abc.Abc');
$this->Abc = new Abc(); or $this->Abc = new AbcComponent;
Run Code Online (Sandbox Code Playgroud)

要么

$this->Abc = $this->Components->load('Abc.Abc');
Run Code Online (Sandbox Code Playgroud)

在控制器内部,这个组件没有问题.我知道这不推荐(MVC设计等),但如果我不这样使用它,我需要复制很多代码.我需要做类似的事情:

MyHelper extends Helper{
   $simpleVar = Component->get_data();
}
Run Code Online (Sandbox Code Playgroud)

Wil*_*gdo 8

我使用CakePHP 2.4

这就是我从Helper成功调用Component的方法:

App::uses('AclComponent', 'Controller/Component');
class MyHelper extends AppHelper {
    public function myFunction() {
        $collection = new ComponentCollection();
        $acl = new AclComponent($collection);
        // From here you can use AclComponent in $acl
        if ($acl->check($aro, $aco) {
            // ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)