2016-09-01 15 views
4

ビュー内でカスタムビューヘルパーにアクセスする際に問題があります。 layout.phtmlのヘルパーを呼び出すと、完璧に動作します。Zend Framework - ビューからビューヘルパーへのアクセス

ZFバージョン:1.11.2

のapplication.ini

resources.view[] = 

ブートストラップ:

protected function _initViewSettings() 
{ 
    $this->bootstrap('view'); 
    $view = $this->getResource('view'); 
    $view->doctype('XHTML1_STRICT'); 

    $view->setScriptPath(APPLICATION_PATH . '/views/scripts/'); 
    $view->addHelperPath(APPLICATION_PATH . '/layouts/helpers/', 'Layout_Helper_'); 
    $view->addHelperPath(APPLICATION_PATH . '/views/helpers/', 'View_Helper_'); 

} 

ヘルパー:(アプリケーション/ビュー/ヘルパー/ Loader.php)

class View_Helper_Loader extends Zend_View_Helper_Abstract 
{ 
    public function loader() 
    { 
     $loader_html = ' 
      <div class="loading"> 
      <div class="bullet"></div> 
      <div class="bullet"></div> 
      <div class="bullet"></div> 
      <div class="bullet"></div> 
     </div>'; 

     return $loader_html; 
    } 
} 

ビュー:

<?php 
    echo $this->loader(); 
?> 

エラー:

Plugin by name 'Loader' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/ 

は、なぜ私は私の見解でヘルパーを使用することはできませんか?

+0

Zend Frameworkのバージョン? – Progrock

+0

1.11.2である必要があります – uniqueHxC

+0

どういう意味ですか?ビューinitは既に私の投稿にあります:) – uniqueHxC

答えて

0

修正済みです。

問題は、自分の行動に次の行をした:

$this->_helper->layout()->disableLayout(); 
    $this->_helper->viewRenderer->setNoRender(true); 

私は私のヘルパーの結果は、とにかく私の見解に解析することだろうと思いました。悪い間違い。

0

おそらく、ビューのレンダリングにビューを追加し、明示的にしてみてください:

$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
     'ViewRenderer' 
    ); 
    $viewRenderer->setView($view); 

私はかなりあなたの問題を再現することはできません - それは、レイアウトではなく、ビューで作業ました。

application.iniにビューリソースを追加すると、ZF 1.11.14で自動的に配線が行われますが、ブートストラップのビュー(new Zend_View)を明示的に作成するとそれをビューレンダラーに渡します。

+0

はこれらの行を私のブートストラップに追加しましたが、エラーは表示されます:/ – uniqueHxC

関連する問題