簡體   English   中英

CakePHP 3.1-缺少插件幫助程序錯誤

[英]CakePHP 3.1 - missing helper error for plugin

我創建了一個插件,但沒有烘焙,它基本上有一個我要在應用程序中使用的助手。 當運行index.php時,出現以下錯誤:

致命錯誤:[Cake \\ View \\ Exception \\ MissingHelperException]找不到助手類EasyuiHelper。

  #0 C:\\xampp\\htdocs\\myKMG_3\\vendor\\cakephp\\cakephp\\src\\Core\\ObjectRegistry.php(91): Cake\\View\\HelperRegistry->_throwMissingClassError('Easyui', 'Easyui') #1 C:\\xampp\\htdocs\\myKMG_3\\vendor\\cakephp\\cakephp\\src\\View\\View.php(1001): Cake\\Core\\ObjectRegistry->load('Easyui.Easyui', Array) #2 C:\\xampp\\htdocs\\myKMG_3\\src\\View\\AppView.php(40): Cake\\View\\View->loadHelper('Easyui.Easyui') #3 C:\\xampp\\htdocs\\myKMG_3\\vendor\\cakephp\\cakephp\\src\\View\\View.php(335): App\\View\\AppView->initialize() #4 C:\\xampp\\htdocs\\myKMG_3\\vendor\\cakephp\\cakephp\\src\\View\\ViewBuilder.php(350): Cake\\View\\View->__construct(Object(Cake\\Network\\Request), Object(Cake\\Network\\Response), Object(Cake\\Event\\EventManager), Array) #5 C:\\xampp\\htdocs\\myKMG_3\\vendor\\cakephp\\cakephp\\src\\View\\ViewVarsTrait.php(119): Cake\\View\\ViewBuilder->build(Array, Object(Cake\\Network\\Request), Object(Cake\\Network\\Response), Object(Cake\\Event\\EventManager)) #6 C:\\xampp\\htdocs\\myKMG_ in C:\\xampp\\htdocs\\myKMG_3\\vendor\\cakephp\\cakephp\\src\\Error\\ErrorHandler.php on line 156 

我按照以下過程創建了插件:

  1. 我在以下網址創建了食譜描述的插件結構: http : //book.cakephp.org/3.0/en/plugins.html#creating-your-own-plugins
  2. 我在plugins/Easyui/scr/View/Helper EasyuiHelper.php:為插件創建了幫助plugins/Easyui/scr/View/Helper EasyuiHelper.php:

     namespace Easyui\\View\\Helper; use Cake\\View\\Helper; class EasyuiHelper extends Helper { public function linkButton($id_image='imgLinkButton', $optionsImg=array()){ // ... } } 
  3. 我在config / bootstrap中添加了以下行:

     Plugin::load('Easyui'); 

    這些在View/AppView

     public function initialize() { parent::initialize(); $this->loadHelper('Easyui.Easyui'); } 

    而這個在Controller/AppController

     public $helpers = ['Easyui.Easyui']; 
  4. 我在默認布局文件中使用幫助器:

     $this->Easyui->linkButton('imgPrint', array('iconCls'=>'icon-print', 'onClick'=>'window.print()')); 

我哪里做錯了? 我有想念嗎?

您需要將路徑添加到composer.json,以便自動加載器可以將其拾取。 參見http://book.cakephp.org/3.0/en/plugins.html#autoloading-plugin-classes

"autoload": {
    "psr-4": {
        "Easyui\\": "./plugins/Easyui/src",
    }
},
"autoload-dev": {
    "psr-4": {
        "Easyui\\Test\\": "./plugins/Easyui/tests",
    }
}

我建議您始終閱讀章,而不只是部分摘錄。 ;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM