Question

J'ai suivantes script de redirection dans mon contrôleur (Zend Framework 2)

return $this->redirect()->toRoute('default', array(
                        'controller' => 'admin',
                        'action' =>  'index'
));

Actuellement, la redirection vers localhost/zf2/public/admin/index

Comment puis-je rediriger avec un paramètre supplémentaire?

Comme:

localhost/zf2/public/admin/index/update/1

ou localhost/zf2/public/admin/index/page/2

J'ai essayé ceci :

return $this->redirect()->toRoute('default', array(
                        'controller' => 'admin',
                        'action' =>  'index'
                            'param' => 'updated/1'
                        ));

Mais il est redirigé vers localhost/ttacounting/public/admin/index/updated%2F1

Était-ce utile?

La solution

Ceci est un exemple de travail.La route de script

$this->redirect()->toRoute('myaccount', array(
    'controller' => 'admin',
    'action' =>  'index',
    'param1' =>'updated',
    'param2'=>'1'
));

Ensuite, le réglage du paramètre dans module.config.php

'myaccount' => array(
    'type' => 'Segment',
    'options' => array(
    'route'    => '/myaccount[/:action][/:param1][/:param2]',
    'defaults' => array(
            'controller' => 'Main\Controller\MyAccount',
            'action'     => 'index',
        ),
    ),
),

Cela vous amènera à MyAccountController, indexAction avec param1='mise à jour' et param2='1'.Mais dans votre cas, l'action doit être mise à jour avec le paramètre "update" nom du paramètre et la valeur '1'

Autres conseils

Cela fonctionne pour moi.

L'itinéraire:

'user_view' => array(
    'type'    => 'Segment',
    'options' => array(
        'route' => '/user/view[/:user_id]',
        'defaults' => array(
            'controller' => 'user',
            'action'     => 'viewUser',
        ),
    ),
), // End of user_view route

Et la Redirection à partir de l'automate:

return $this->redirect()->toRoute('user_view', array('user_id'=>$user_id));

Notez que la clé du Tableau de la redirection de déclaration correspondent au segment de la route:[/:user_id] = 'user_id'=>$user_id

La présente déclaration vous redirige vers localhost/conduit/modifier/112345:

return $this->redirect()->toRoute('leads', array(
                'action' => 'edit',
                'id' => 112345
            ));

l'id est le paramètre-je attendre de l'action editaction.

Espérons que cela aide.

Une autre façon est de passer d'un troisième paramètre (testé sur ZF3), au lieu de la mise à jour de l'itinéraire:

$this->redirect()->toRoute('dashboard', [], ['query' => ['welcome' => 1]]);

J'ai essayé un peu de la solution ci-dessus, mais aucun d'entre eux travaillaient pour moi.Je suis venu avec la suivante.

//Return to specific product pricing 
return $this->redirect()->toRoute('showpricing', array('id' => $form_values['id']));


  /* show pricing */
          'showpricing' => array(
              'type' => 'Zend\Mvc\Router\Http\Segment',
              'options' => array(
                  'route'   => '/product/showpricing[?id=:id]',
                  'defaults' => array(
                      'controller' => 'Product\Controller\Product',
                      'action'     => 'showpricing',
                  )
              )
          ),

Espérons que cela aidera quelqu'un.

Essayez cette route au lieu de votre précédente

return $this->redirect()->toRoute('default', [
    'controller' => 'admin',
    'action' =>  'index'
    'updated' => '1'
]);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top