【问题标题】:Zend Framework View Helper not available in module when using layout使用布局时,Zend Framework View Helper 在模块中不可用
【发布时间】:2012-11-11 19:51:48
【问题描述】:

我开始使用 zend 框架 1.12,但遇到了一个我似乎无法解决的小问题。

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

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

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

我希望我是有道理的,我会感谢你在这方面的帮助!

干杯!

【问题讨论】:

    标签: php zend-framework view module view-helpers


    【解决方案1】:

    如果我理解正确,您需要在 bootstrap 或 application.ini 中设置视图助手路径,我在 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;
        }
    

    还要确保您的模块包含它自己的引导文件,这样可以将资源加载到模块:

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

    希望对你有帮助

    【讨论】:

    • 你理解正确。但经过一番谷歌搜索后,我自己已经找到了答案。我将视图助手目录添加到 application.ini,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    相关资源
    最近更新 更多