8

views/helpers/ファイル内の関数を呼び出すと、views/scripts/内のスクリプトから、次のエラーが発生します。

メッセージ: 'SetBlnCompany' という名前のプラグインがレジストリに見つかりませんでした。使用するパス: My_View_Helper_: /www/zendserver/htdocs/development/application/views/helpers/ Zend_View_Helper_: Zend/View/Helper/:/www/zendserver/htdocs/development/application/views/helpers/

ブートストラップ.php

protected function _initConfig()
{       
    Zend_Registry::set('config', new Zend_Config($this->getOptions()));
    date_default_timezone_set('America/Chicago');
}

protected function _initAutoload() {     
    $autoloader = new Zend_Application_Module_Autoloader(array(             
        'namespace' => 'My',             
        'basePath'  => dirname(__FILE__),     
    ));
    return $autoloader;
} 

アプリケーション.ini

resources.view.helperPath.My_View_Helper = APPLICATION_PATH "/views/helpers" 

アプリケーション/ビュー/ヘルパー/DropdownHelper.php

class Zend_View_Helper_Dropdownhelper extends Zend_View_Helper_Abstract
{
     public $blnCompany = false;

     public function getBlnCompany() {
         return $this->blnCompany;
     }

     public function setBlnCompany($blnCompany) {
         $this->blnCompany = $blnCompany;
     }
}

エラーを引き起こすスクリプト

<?php 
     $this->setBlnCompany(true);
     //...etc...
?>

編集して、投稿に背景情報を追加します。

理想的には、この「ドロップダウン ヘルパー」クラスを使用して、「get html」の関数、「get javascript」の関数、および getHtml と getJavascript が呼び出される前にオプションを設定する多くのセッター関数を使用します。

4

1 に答える 1

12

ヘルパーは、メソッドと同じ名前である必要があります。に変更Zend_View_Helper_DropdownhelperするZend_View_Helper_GetBlnCompanyと、機能します。ファイル名も変更することを忘れないでください:GetBlnCompany.php

プロキシ方式を使用するには、次のことを行う必要がありますreturn $this;

// /application/views/helpers/helpers/GetBlnCompany.php
class Zend_View_Helper_GetBlnCompany extends Zend_View_Helper_Abstract
{    
    public function getBlnCompany() 
    {
        return $this;
    }

    public function fooBar($blnCompany)
    {
        return ucfirst($blnCompany);
    }
}

次に、次のようにビューヘルパーを呼び出す必要があります。

$this->getBlnCompany()->fooBar('google');
//return "Google"
于 2012-03-02T17:12:31.790 に答える