Zend framework2 在zf2控制器中创建链接url

Zend framework2 在zf2控制器中创建链接url,zend-framework2,Zend Framework2,我是zend framework 2的初学者。 如果需要在视图.phtml中创建链接,请使用以下命令: $this->url('router',array()) 现在我需要在控制器中创建一个链接并保存到数据库。 有什么想法吗?试试这个: public function someAction() { //codes //use url plugin in controller $link = $this->url()->fromRoute('route

我是zend framework 2的初学者。 如果需要在
视图.phtml
中创建链接,请使用以下命令:

$this->url('router',array())
现在我需要在控制器中创建一个链接并保存到数据库。 有什么想法吗?

试试这个:

public function someAction()
{
    //codes

    //use url plugin in controller
    $link = $this->url()->fromRoute('router', array());
    //or use ViewHelperManager in controller or other place that you have ServiceManager
    $link = $this->getServiceLocator()->get('ViewHelperManager')->get('url')->__invoke('router',array());

    //codes
}
使用url()控制器插件:

public function fooAction(){

    //other code

    $this->url('routename');

    //other stuff
}
调用viewhelper:

public function algoAction()
{
    $url = $this->getServiceLocator()
            ->get('viewhelpermanager')
            ->get('url');
    $link = $url('router',array());
}
zf v2.4


['force_canonical'=>true]*是可选的

使用
url()
controller插件->更好的方法是使用$this->url()插件,您不必从ViewHelperManager中提取它。是的,但这是在controller或onBootstrap中创建url的一般方法。错误。在控制器中,必须使用
$this->url()->fromRoute(…)
,而不是
$this->url(…)
。请参阅其他答案。
$this->url()->fromRoute('home',[],['force_canonical' => true]);