0

私は自分のヘルパーを作成しようとしています。Safecheckフォルダーはフォルダー内にあり、フォルダーlibraryが含まれていHelperます。クラスはSafecheck_Helper_Authority.php(内部でlibrary/Safecheck/Helper) 呼び出されます。

Bootstrap.php

protected function _initHelper() 
{
    Zend_Controller_Action_HelperBroker::addPrefix('Safecheck_Helper');
}

Safecheck_Helper_Authority.php

class Safecheck_Helper_Authority extends Zend_Controller_Action_Helper_Abstract
{
    public function hasAuthority($userId, array $ids)
    {

    }
}  

このクラス内の関数を使用したい。しかし、次のコードによってトリガーされる「メッセージ: Action Helper by name Authority not found」というエラーが表示されます。

$this->_helper->authority('hasAuthority');  

多分私は正しいコードでそれを呼び出していませんか? 何か不足していますか?

4

2 に答える 2

1

この方法でアクション ヘルパーを呼び出すには、ヘルパーでdirect()メソッド $this->_helper->authority('hasAuthority');を定義する必要があります。

class Safecheck_Helper_Authority extends Zend_Controller_Action_Helper_Abstract
{
    public function direct($userId, array $ids)
    {
       // do helper stuff here
    }
}  

ヘルパー パスとプレフィックスを登録する簡単な方法は、application.ini を使用することです。

resources.frontController.actionhelperpaths.Safecheck_Helper = APPLICATION_PATH "/../library/Safecheck/Helper"

ブートストラップでそれを行うには( addPrefix() がライブラリの名前空間で機能するかどうかは不明です):

protected function _initHelper() 
{
    //addPath(path_to_helper, helper_prefix)
    Zend_Controller_Action_HelperBroker::addPath('/../library/Safecheck/Helper', 'Safecheck_Helper');
}

アクションヘルパーの簡単な例:

class Controller_Action_Helper_Login extends Zend_Controller_Action_Helper_Abstract
{
    //prepares a login form for display
    public function direct()
    {
        $form = new Application_Form_Login();
        $form->setAction('/index/login');

        return $form;
    }
}
于 2012-09-19T13:52:28.300 に答える
0

あなたのapplication.iniに似たものを持ってください

resources.frontController.actionhelperpaths.Application_Action_Helper = APPLICATION_PATH "/../classes/Application/Action/Helper"

パスは、ファイル パスを反映するように変更する必要があります。

于 2012-09-19T13:50:38.537 に答える