如何在控制器中使用辅助函数?

时间:2011-06-23 07:09:01

标签: cakephp cakephp-1.3

我在app_helper文件中写了一些函数。现在我需要在我的控制器中调用该函数 我怎么能在CAKEPHP中做到这一点

7 个答案:

答案 0 :(得分:19)

你不能。*

如果您的函数非常通用以便在视图之外使用,请在bootstrap.php中创建它们,或在libs/目录中创建自定义库/类。


* 您可以使用App::import('Helper', 'NameOfHelper')ClassRegistry::init在任何地方加载任何内容,但实际上您不应该这样做。 MVC分离的关键是保持你的应用程序井井有条。

答案 1 :(得分:16)

App::uses('HtmlHelper', 'View/Helper');
$yourTmpHtmlHelper = new HtmlHelper(new View());

最终是与Cakephp 2.3一起使用的版本

答案 2 :(得分:5)

App::import('Helper', 'Forum.Common');
    $commonHelper = new CommonHelper(new View())

答案 3 :(得分:5)

您可以使用Controller中的助手

App::uses('YourHelper', 'View/Helper');

class yourController extends AppController {

public function index(){
    $yourHelper = new YourHelper(new View());
    $yourHelper->yourMethod();
  }

}

答案 4 :(得分:2)

如果你想在你的所有控制器中使用一些常用功能,比如帮助器对于视图, 你必须使用组件 http://book.cakephp.org/2.0/en/controllers/components.html

而是使用App :: import('Helper','NameOfHelper'),这样可以保持MVC标准的正确性并使您的应用程序井井有条。

答案 5 :(得分:1)

你可以用这种方式调用辅助函数。假设您的助手是 DemoHelp 并调用辅助函数 call_function()然后你可以使用它。

App::import('Helper', 'DemoHelp');
$DemoHelp = new DemoHelpHelper();

$DemoHelp->call_function()

答案 6 :(得分:0)

您可以使用Component,它们存储在Controller/Component/

例如,如果您有Controller/Component/SomeComponent.php 并希望在控制器内单一动作中即时调用它:

$this->SomeComponent = $this->Components->load('SomeComponent');
$this->SomeComponent->someFunction();