Définissez le paramètre d'url de redirection dans le zend framework v2
-
11-12-2019 - |
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
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'
]);