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