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

È stato utile?

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'
]);
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top