Php ZF2-将变量传递给zend内置帮助程序

Php ZF2-将变量传递给zend内置帮助程序,php,zend-framework2,Php,Zend Framework2,我想将变量service menager传递给zend的内置助手。可能吗?更清楚地说: 有一个名为Url的zend助手,它构造Url的 在这个助手中,我想从数据库中获取一些数据,所以我需要将连接或模型传递到那个里 取决于第2点中获得的数据。我想建立我的自定义链接 嗯,事情看起来是这样的:我正在尝试创建自己的自定义路由。所以在数据库中,我有控制器、动作和它的别名。例如: Home\Controller\Home | index | myalias 路由工作正常,这意味着如果我键入url: e

我想将变量service menager传递给zend的内置助手。可能吗?更清楚地说:

有一个名为Url的zend助手,它构造Url的 在这个助手中,我想从数据库中获取一些数据,所以我需要将连接或模型传递到那个里 取决于第2点中获得的数据。我想建立我的自定义链接 嗯,事情看起来是这样的:我正在尝试创建自己的自定义路由。所以在数据库中,我有控制器、动作和它的别名。例如:

 Home\Controller\Home | index | myalias
路由工作正常,这意味着如果我键入url:

 example.com/myalias
然后Zend将打开主控制器并索引操作。但在整个页面上,我有由Zend build in url helper生成的url,如下所示:

$this->url('home', array('action' => 'index'));
所以link看起来:

example.com/home/index
我想将链接更改为

example.com/myalias

无需更改Url帮助程序在整个页面上生成的链接。因此,在帮助程序返回url之前,应检查该url是否有别名,如果有,则应返回除常规url之外的别名。

在帮助程序类文件所在模块的Module.php中,编写以下内容-

//use statements

class Module {
    //public function getAutoloaderConfig() { [...] }

    //public function getConfig() { [...] }

    public function getViewHelperConfig() {
        return array(
            'factories' => array(
                'Url' => function ($sm) {
                    $locator = $sm->getServiceLocator();
                    $viewHelper = new View\Helper\Url;

                    //passing ServiceLocator to Url.php
                    $viewHelper->setServiceLocator($locator);  //service locator is passed.

                    return $viewHelper;
                },
            ),
        );
    }
}
现在在Url.php中,我们需要一个函数setServiceLocator和getServiceLocator


我希望它能有所帮助。

你的意思是这样的回答吗->你说的是url视图帮助器还是url控制器插件?@Ruben关于视图帮助器。
//use statements

class Url {

    public $serviceLocator;

    public function getServiceLocator() {
        return $this->serviceLocator;
    }

    public function setServiceLocator($serviceLocator) {
        if($this->serviceLocator == null)
            $this->serviceLocator = $serviceLocator;

        return;
    }

}