Impostare il parametro URL in Reindirizzamento in Zend Framework V2
-
11-12-2019 - |
Domanda
Ho il seguente script di reindirizzamento nel mio controller (Zend Framework 2)
return $this->redirect()->toRoute('default', array(
'controller' => 'admin',
'action' => 'index'
));
.
attualmente reindirizzamento a localhost/zf2/public/admin/index
Come posso reindirizzare con un parametro extra?
Come:
localhost/zf2/public/admin/index/update/1
o localhost/zf2/public/admin/index/page/2
Ho provato questo:
return $this->redirect()->toRoute('default', array(
'controller' => 'admin',
'action' => 'index'
'param' => 'updated/1'
));
.
ma viene reindirizzato a localhost/ttacounting/public/admin/index/updated%2F1
Soluzione
Questo è un esempio di lavoro. Lo script del percorso
$this->redirect()->toRoute('myaccount', array(
'controller' => 'admin',
'action' => 'index',
'param1' =>'updated',
'param2'=>'1'
));
.
Quindi, impostazione del parametro in Module.config.php
'myaccount' => array(
'type' => 'Segment',
'options' => array(
'route' => '/myaccount[/:action][/:param1][/:param2]',
'defaults' => array(
'controller' => 'Main\Controller\MyAccount',
'action' => 'index',
),
),
),
.
Questo ti porterà a MyAccountController, Indicizzazione con Param1= 'Aggiornato' e Param2= '1'. Ma nel tuo caso di esempio, l'azione dovrebbe essere aggiornata con il nome del parametro 'Aggiornamento' e il valore del parametro '1'
Altri suggerimenti
funziona per me.
Il percorso:
'user_view' => array(
'type' => 'Segment',
'options' => array(
'route' => '/user/view[/:user_id]',
'defaults' => array(
'controller' => 'user',
'action' => 'viewUser',
),
),
), // End of user_view route
.
E il reindirizzamento dal controller:
return $this->redirect()->toRoute('user_view', array('user_id'=>$user_id));
.
Si noti che il tasto Array nella dichiarazione di reindirizzamento corrisponde al segmento del percorso: [/: user_id]= 'user_id'=> $ user_id
Questa affermazione ti reindirizza a localhost / leads / modifica / 112345:
return $this->redirect()->toRoute('leads', array(
'action' => 'edit',
'id' => 112345
));
.
ID è il parametro che mi aspetto nell'editazione.
Spero che aiuti.
Un altro modo è di passarlo come terzo parametro (testato su ZF3), invece di aggiornare il percorso:
$this->redirect()->toRoute('dashboard', [], ['query' => ['welcome' => 1]]);
. Ho provato alcuni dalle soluzioni di cui sopra, ma nessuno di loro stava lavorando per me.Sono venuto con quanto segue.
//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',
)
)
),
.
Spero che questo aiuterà qualcuno.
Prova questa rotta invece del tuo precedente
return $this->redirect()->toRoute('default', [
'controller' => 'admin',
'action' => 'index'
'updated' => '1'
]);
.