2015-09-16 8 views
5

Meine Umleitung:Redirect mit Methode Post

public function actionLogout() 
{ 
    Yii::$app->user->logout(); 

    $cookies = Yii::$app->response->cookies; 
    $cookies->remove('isBackendLogin'); 
    unset($cookies['isBackendLogin']); 

    if (!strpos(Url::current(), 'backend')) 
    { 
     //POST Method sent 
     return $this->redirect(['backend/user/auth/logout']); 
    } 
    return $this->goHome(); 
} 

aber Abmelde benötigen Post-Daten-Methode.

Gibt es eine Möglichkeit, auf diese Seite umzuleiten?

+1

Betrogene: http://stackoverflow.com/questions/5576619/php-redirect-with-post-data –

Antwort

0

Sie können versteckte Felder auf der Abmeldeseite verwenden und das Formular automatisch mit etwas Javascript senden, wenn der Benutzer diese Seite erreicht.

Edit: Ich sah nur das Tag eines Frameworks. Sageth, gab eine Antwort für deinen Rahmen.

0

Sie können Parameter mit dem redirect übergeben, wenn Sie dem Array url Parameter hinzufügen.

return $this->redirect(['/backend/user/auth/logout', 
         'key' => 'value', 
         'anotherPostKey' => 'anotherPostValue', 
         ]); 
+1

in Ihrem Beispiel, Schlüssel und anotherPostKey wird durch GET-Methode gesendet werden –

+0

Oh, ich sehe. Es scheint, dass Yii2 nicht mit POST umleiten kann, aber Sie haben eine globale Variable für Benutzer, wenn Sie Daten mit der Benutzersitzung speichern möchten. Sie möchten mehr Informationen dazu? – Sageth

+0

Ja, bitte. Mein Problem ist, dass ich zwei getrennte Sitzungen für Frontend und Backend habe. Wenn ich mich im Frontend auslogge, muss ich mich auch im Backend abmelden. [code] öffentliche Funktion actionLogout() \t { \t \t Yii :: $ app-> Benutzer-> logout(); \t \t $ cookies = Yii :: $ app-> antwort-> cookies; \t \t $ cookies-> entfernen ('isBackendLogin'); \t \t nicht gesetzt ($ cookies ['isBackendLogin']); \t \t if (! Strpos (URL :: current(), 'Back-End')) \t \t { \t \t \t // Umleitung dieses \t \t \t return $ this-> redirect_post (Yii :: $ app- > urlManager-> createAbsoluteUrl (['/ backend/user/auth/logout']), []); \t \t} \t \t zurückgeben $ this-> goHome(); \t} [/ code] –