Redirect i controllern

När du jobbar i controllern händer det att vi vill skicka clienten vidare någon annan stans. Det kan också hända att vi inte vill starta om hela processen med en ny tråd utan bara peka om till en annan action. Posten går igenom lite enkelt hur detta går till.

I klassen Mage_Core_Controller_Front_Action, som alla kontrollers i Magento ärver, så hittar vi tre funktionen som hjälper oss med att omdirigera trafiken

_forword

$this->_forward(
    String $action,
    String $controller = null,
    String $module     = null,
    Array  $params     = null );

Forword flyttar fram trafiken utan att url’en byts ut. Innehållet som renderas i denna action syns därmed istället.

Om du vill visa en 404 sida så är det vanligt man använder forword till ”noRoute”.

_redirect

$this->_redirect(
    String $path,
    Array  $arguments = array() );

Redirect -funktionen skickar klienten vidare till den adress som routern hittar för den angivna modul/controller/action sökvägen.

_redirectUrl

$this->_redirectUrl( String $url );

…omdirigerar till en absolut url. Ett råd är att bara använda denna funktion till externa länkar för att hålla applikationen transparent och följa god programmerings sed.

Länkar

http://blog.chapagain.com.np/magento-redirect-functions/