Redirect aus eigenem Controller - wie werte zurückgeben?

Hallo,

ich habe einen eigenen Controller registriert, der aus einer Form unter account/supplierOrders mit 

angesprochen wird. In dem Controller habe ich eine supplierOrdersAction definiert. Das funktioniert. Wenn die Form ausgeführt wird, wird danach /DemandPlanning/supplierOrders geöffnet.

Ich möchte aber, dass account/supplierOrders geöffnet wird, jedoch mit meinem Ergebnis aus meinem Controller. Nun habe ich einen Redirect am Ende der supplierOrdersAction definiert:

$this->View()->assign('orders', $orders);
​return $this->redirect([
                'controller' => 'account',
                'action'    => 'supplierOrders'
            ]);

Durch den Redirect habe ich in meinem Template unter account/supplierOrders aber keinen Zugriff mehr auf die Variable $orders. Wie bekomme ich es denn hin, dass ich aus meinem Controller zum account zurückleite, aber mit meinen Werten?

P.S: Alternativ, um die URL Struktur beizubehalten, könnte ich auch die eigene Action im Controller Account ablegen, aber wie erweitere ich einen Shopware-Controller um eine eigene Methode?

Wäre super, wenn hier jemand einen Ratschlag hat. Danke!

Wenn du unbedingt deine Action im Account controller willst würde ich mich auf das Event Enlight_Controller_Action_Frontend_Account_supplierOrders subscriben.

Somit erstellst du eine Action. Wichtig:  Du musst am Ende der Funktion return true machen.

Du kannst beim redirect auch selber Parameter angeben die übertragen werden und kannst sie mit $this->Request()->getParam dann holen

@Shyim‍

Danke für deine Antwort.

Du meinst, in meiner Bootstrap meines Plugins subscribe ich zu Enlight_Controller_Action_Frontend_Account_supplierOrders und kann dann in der Bootstrap meines Plugins die Funktion erstellen?

Im Frontend rufe ich die Action dann mit folgendem Code auf?
 

 

Bzgl. des Redirects - hättest Du da ein Beispiel? Ich kenne nur 

 

        $this->redirect([
            'controller' => 'account',
            'action'    => 'deposit',
            'myReturnAction'  => 'donation'
        ]);

Wodurch aber myReturnAction als Get-Parameter an die URL gehängt wird, nicht aber als POST-Parameter? In meinem Fall möchte ich z.B. ein Array mit vielen Daten zurückgeben, das bekomme ich ja nicht in die URL :slight_smile:

Danke!

Jap einfach subscriben

Wenn du die Daten nicht sichtbar machen möchtest für den User, solltest du es einfach in die session schreiben.