使用布局时,Zend Framework View Helper在模块中不可用

使用布局时,Zend Framework View Helper在模块中不可用

问题描述:

I'm starting to work with zend framework 1.12 and I ran into a little problem which I don't seem to be able to fix.

Up untill now i've done everything in the application, but now I want to build a module that handles all stuff that is related to settings.

Therefor i've created a new module and added a controller into it. This module automatically takes the layout from the application, which is what I want.

In this layout I use a view helper which works when I load a controller/action that is in the application folder. But when I try to load the layout around my controller inside my module the view helper is not available.

I hope I'm making sense and I would appreciate your help on this one!

Cheers!

我开始使用zend framework 1.12,我遇到了一个小问题,我似乎没有 能够修复。 p>

直到现在我已经完成了应用程序中的所有操作,但现在我想构建一个处理与设置相关的所有内容的模块。 p>

因此我创建了一个新模块,并在其中添加了一个控制器。 这个模块自动从应用程序中获取布局,这就是我想要的。 p>

在这个布局中我使用了一个视图助手,当我加载应用程序文件夹中的控制器/动作时 。 但是当我尝试在我的模块中加载我的控制器周围的布局时,视图帮助器不可用。 p>

我希望我有意义,我将非常感谢你对这个的帮助! / p>

干杯! p> div>

If I understand you correctly you need to setup your view helper path in the bootstrap or application.ini, I do it in bootstrap:

 protected function _initView()
    {
        //Initialize view
        $view = new Zend_View();
        //add custom view helper path
        $view->addHelperPath('/../library/Namespace/View/Helper');

        //do more stuff if needed

        //add it to the view renderer
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
                'ViewRenderer');
        $viewRenderer->setView($view);
        //Return it, so that it can be stored by the bootstrap
        return $view;
    }

also make sure your module includes it's own bootstrap file, this makes it possible to load resources to the module:

//at /application/modules/module/bootstrap.php
class Module_Bootstrap extends Zend_Application_Module_Bootstrap
{
    //just an empty class is enough
}

hope this helps