0

次のように、モジュールに登録されているカスタム ビュー ヘルパーにアクセスする方法はありますか。

'fooBar' => 'Library\FooBar\FooBar'

このような?

<p>This is partial...</p>
<p><?php echo $this->fooBar(); ?></p>

ビューで fooBar ビュー ヘルパーを使用できますが、パーシャルではエラーが発生します。ここに私のビューヘルパーがあります:

class FooBar extends AbstractHelper
{

    public function __invoke($module)
    {
        return $this->getView()->myMethod();
    }

}

そして、次の行に沿ってエラーが発生しています。

Call to a member function myMethod() on a non-object
4

1 に答える 1

0

それは私のために働いています。Module.php ファイルでビュー ヘルパーを次のように構成します。

//module/src/module/View/Helper/Authz.php // ヘルパーを表示

    use Zend\View\Helper\AbstractHelper;



    class Authz extends AbstractHelper 
    {

    public function isAllowed()
{
}
    }

.

//Module.php

public function bootstrap(Event $e)
    {

    }
    public function onBootstrap($e)
    {

        $app = $e->getApplication();
        $serviceManager = $app->getServiceManager();


        $serviceManager->get('viewhelpermanager')->setFactory('Authz', function ($sm) use ($e)      {
           return new Authz($sm); //view helper
        });


    }

// 部分的 // view/layout/partials/leftnav.phtml

$userAllow = $this->Authz()->isAllowed(); 

// レイアウトでは、上記の leftnav.phtml 部分を次のように呼び出します。//view/layout/layout.phtml

<?php echo $this->partial('partials/header', array('company_name' => 'CompanyName')); ?>

// config/module.config.php

'view_manager' => array(
        'template_path_stack' => array(
            'modulename' => __DIR__ . '/../view' ,
        ),
        'strategies' => array(
            'ViewJsonStrategy',
        ),

        'display_not_found_reason' => true,
        'display_exceptions'       => true,
        'doctype'                  => 'HTML5',
        'not_found_template'       => 'error/404',
        'exception_template'       => 'error/index',
        'template_map' => array(
            'layout/layout'           => __DIR__ . '/../view/layout/layout.phtml',
            'partials/header'           => __DIR__ . '/../view/layout/partials/header.phtml',
            'partials/leftnav'           => __DIR__ . '/../view/layout/partials/leftnav.phtml',            
            'partials/contents-top'           => __DIR__ . '/../view/layout/partials/contents-top.phtml',            
            'error/404'               => __DIR__ . '/../view/error/404.phtml',
            'error/index'             => __DIR__ . '/../view/error/index.phtml',    
        ),

    ),    
于 2013-03-21T18:56:55.550 に答える