2010-03-31 5 views
9

Ist es möglich, Parameter ($ _POST oder $ _GET) mit Redirectory Helfer in Zend Framework zu übergeben? Der folgende Code leitet zur Indexaktion des aktuellen Controllers um, aber ich möchte auch einige Parameter an ihn übergeben.Wie gebe ich Parameter mit Redirector Helfer in Zend Framework?

$this->_helper->redirector("index"); 

Zend Dokumenation sagt nichts darüber.

Antwort

19

Natürlich. Dies ist ein Codebeispiel aus der Action Helpers documentation (siehe Redirector Abschnitt, etwa 2/3 des Weges auf der Seite). Möglicherweise müssen Sie einen Verweis auf den Redirector-Helper greifen und rufen Sie eine der goto* Methoden wie dieser Code tut.

class ForwardController extends Zend_Controller_Action 
{ 
    /** 
    * Redirector - defined for code completion 
    * 
    * @var Zend_Controller_Action_Helper_Redirector 
    */ 
    protected $_redirector = null; 

    public function init() 
    { 
     $this->_redirector = $this->_helper->getHelper('Redirector'); 
    } 

    public function myAction() 
    { 
     /* do some stuff */ 

     // Redirect to 'my-action' of 'my-controller' in the current 
     // module, using the params param1 => test and param2 => test2 
     $this->_redirector->gotoSimple('my-action', 
             'my-controller', 
             null, 
             array('param1' => 'test', 'param2' => 'test2')); 
    } 
} 
+0

@Andy Shellam // ah! Wie könnte ich das vermissen! Vielen Dank! – Moon

+0

Die oben erwähnte Dokumentation von Action Helpers gibt eine 404 zurück. Versuchen Sie dies stattdessen für Version 1.12 - https://framework.zend.com/manual/1.12/en/zend.controller.actionhelpers.html – PiggyMacPigPig

+0

Ich benutze Zend 3.0.0, und Meine Param-Reihenfolge ist Redirector (Modul, Aktion, Controller, Parameter) –

8

Übergeben Sie ein Array als 4. Parameter:

$this->_helper->redirector('action', 'controller', 'module', array('param1' => 'value1')); 
+0

Was ist der "Modul" Parameter, den Sie verwenden? – softwareplay

+1

@softwareplay Name des Moduls, das Sie verwenden, wenn es kein Modul gibt, denke ich, sollten Sie es leer setzen. http://framework.zend.com/manual/2.0/de/user-guide/modules.html – Rahman

Verwandte Themen