我在app_helper文件中写了一些函数。现在我需要在我的控制器中调用该函数 我怎么能在CAKEPHP中做到这一点
答案 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();