10

如何重定向到另一个模块?

return $this->redirect()->toRoute(null, array(
    'module'     => 'othermodule',
    'controller' => 'somecontroller',
    'action'     => 'someaction'
));

这似乎不起作用,有什么想法吗?

4

4 回答 4

27

这就是我从控制器重定向到另一个路由的方式:

return $this->redirect()->toRoute('dns-search', array(
    'companyid' => $this->params()->fromRoute('companyid')
));

dns-search 是我要重定向到的路由,companyid 是 url 参数。

最后 URL 变为 /dns/search/1 (例如)

于 2013-03-08T21:04:31.647 回答
17

重定向的简单方法之一是:

return $this->redirect()->toUrl('YOUR_URL');
于 2014-01-09T11:50:17.730 回答
6

这是ZF2中的重定向方式:

return $this->redirect()->toRoute('ModuleName',
  array('controller'=>$controllerName,
        'action' => $actionName,
        'params' =>$params));

我希望这可以帮助你。

于 2013-07-23T10:02:27.550 回答
1

Google 认为,这个问题与zf2 redirect with anchor有关,所以如果您不介意,我会在此处添加答案。我们可以fragment在的第三个参数中使用选项toRoute

public function doAction(){
    return $this->redirect()
         ->toRoute('chats', 
                   array('action' => 'view', 
                       'id' => $message->getChat()->getId()
                   ),
                   array('fragment' => 'm' . $message->getId())
    );
}

我的路线:

'chats' => array(
    'type' => 'segment',
    'options' => array(
        'route' => '/chats/[:action/][:id/]',
        'constraints' => array(
            'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
            'id' => '[0-9]+',
        ),
        'defaults' => array(
            'controller' => 'Application\Controller\Chats',
            'action' => 'index',
        ),
    ),
),

因此,用户将被定向到类似/chats/view/12/#m134

于 2015-04-30T13:04:23.720 回答