Array als Controller Redirect Parameter

Guten Tag,

vielen Dank fürs Lesen und Antworten.

Mein Problem sieht folgendermaßen aus ich möchte gerne an eine Controller Action
per Redirect ein Array als Parameter mit übergeben.
Einfache GET oder POST Parameter sind ja kein Problem

Aktuell löse ich es noch über eine Session, von dieser Lösung bin ich allerdings nicht so begeistert.

Hat hier vielleicht jemand ne Idee wie ich das Array weitergeben könnte?

Grüße Lukaschel

Hi,

per POST bietet sich json_encode() oder serialize() an. Wenn es per GET übertragen werden muss, kann man das ganze ggf. mit base64_encode lösen. Hier hast du allerdings einen Overhead von ca. 33% die mehr übertragen sind und deine maximale Länge (noch) weiter einschränken.

 

Viele Grüße,

Jens

Hallo,

vielen Dank schonmal.

Hättest du dazu eventuell auch ein Code Beispiel habe es gerade so probiert, allerdings
hängt er es so als GET Parameter mit an.

$this->redirect(Shopware()->Front()->Router()->assemble(array('controller' => 'LoginAction', 'action' => 'loginRequest', 'login_array' => serialize($login_array))));

Grüße
Lukaschel

Hallo Lukaschel,

auf Grund der Funktionsweise von $this->redirect() werden die Parameter als GET Parameter mitgesendet. Btw kannst du auch direkt das Array in die Funktion reingeben ohne vorher den Router zu nutzen.

$this->redirect(['controller' => 'LoginAction', 'action' => 'loginRequest', 'login_array' => serialize($login_array)]);

Wenn du den Parameter als POST senden möchtest kannst du die forward Methode nutzen:

$this->forward('loginRequest', 'loginAction', null, [
    'login_array' => serialize($login_array)
]);

Viele Grüße aus Schöppingen

 Michael Telgmann

Weeeyy bin begeistert!!

Vielen Dank