web-dev-qa-db-fra.com

Zend Framework 2 Redirect

Comment puis-je rediriger vers un autre module?

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

Cela ne semble pas fonctionner, des idées?

Voici comment je redirige de mon contrôleur vers une autre route:

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

Où dns-search est la route vers laquelle je veux rediriger et companyid sont les paramètres url.

Finalement, l'URL devient/dns/search/1 (par exemple)

26
Diemuzi

Un des moyens faciles de rediriger est:

return $this->redirect()->toUrl('YOUR_URL');
16
Manish

Voici le moyen de redirection dans ZF2:

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

J'espère que ceci vous aide.

6
KumarA

Google pense que cette question est pertinente pour la redirection zf2 avec anchor , je vais donc ajouter la réponse ici, si cela ne vous dérange pas. Nous pouvons simplement utiliser l'option fragment dans le troisième argument de toRoute

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

Mon itinéraire:

'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',
        ),
    ),
),

Ainsi, l’utilisateur sera redirigé vers /chats/view/12/#m134

1
shukshin.ivan