在模块引导程序

时间:2016-04-24 22:33:54

标签: zend-framework2

我想访问basePath视图助手inside my Application Module Bootstrap.

以下是我的应用程序模块中的当前代码:

public function onBootstrap(MvcEvent $e)
{
   $viewHelperManager = $e->getApplication()->getServiceManager()->get('viewhelpermanager');
   $basePath = $viewHelperManager->get('BasePath');        
   $headScript = $viewHelperManager->get('HeadScript');
   $headScript->appendFile($basePath->basePath('/js/custom.js'));
}

我能够获得头部脚本视图助手来添加javascript但我无法访问基本路径视图助手

如果您查看代码,则呼叫为:$basePath->basePath('/js/custom.js')

我如何做到这一点?

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

在你的问题中获取帮助器的方式没有任何问题,唯一的问题是你试图调用辅助方法的方式。

BasePath视图助手是一个可调用的类,您可以显式调用其__invoke()方法

$basePath = $viewHelperManager->get('BasePath');

$basePath->__invoke('js/custom.js');

或者,因为声明invoke方法允许你调用一个对象就像它是一个函数一样,你可以像这样编写相同的东西

$basePath = $viewHelperManager->get('BasePath');

$basePath('js/custom.js');

答案 1 :(得分:-2)

$viewHelperManager = $e->getApplication()->getServiceManager()->get('viewhelpermanager');       
$headScript = $viewHelperManager->get('HeadScript');        
$headScript->prependFile($viewHelperManager->getRenderer()->basePath('js/bootstrap.min.js'));
$headScript->prependFile($viewHelperManager->getRenderer()->basePath('js/jquery.min.js'));
$headScript->prependFile($viewHelperManager->getRenderer()->basePath('js/respond.min.js'),'text/javascript', array('conditional' => 'lt IE 9'));
$headScript->prependFile($viewHelperManager->getRenderer()->basePath('js/html5shiv.min.js'),'text/javascript', array('conditional' => 'lt IE 9'));
相关问题