2015-10-13 55 views
4

我在成功登錄後進入關於頁面。沒關係。登錄成功後,yii2-app-basic中的URL不會更改

但是,URL不會更改爲關於頁面。與登錄頁面相同,但頁面內容爲關於頁面。

SiteController.php

public function actionLogin() 
{ 
    if (!\Yii::$app->user->isGuest) 
    { 
     return $this->goHome(); 
    } 

    $model = new LoginForm(); 
    if ($model->load(Yii::$app->request->post())) 
    { 
     return $this->render('about'); // Here 
    } 

    return $this->render('login', [ 
     'model' => $model, 
    ]); 
} 

URL是一樣的http://localhost/myProject/yii/web/index.php?r=site%2Flogin。 它應該是http://localhost/mylawsuit/yii/web/index.php?r=site%2Fabout

那麼,如何在登錄後更改URL?提前致謝。

回答

5

不用翻譯about觀點,您只需要使用一個重定向:

return $this->redirect(['about']); 
1

你的答案:

if ($model->load(Yii::$app->request->post())) 
{ 
    $this->redirect(['about']); // change here to this 
} 
+0

如果是正確的,請選擇正確答案! – mohsen

+0

嗨,莫森先生,我不能那樣做。因爲@Soju先生回答了第一。但是,我投了你的答案。謝謝回答。 –

+0

確定選擇@Soju作爲其他人的選定成員應答! – mohsen

1

可以使用Yii::$app->request->referrer這裏的Yii Documentation

1

你是renderingabout view in actionLogin。顯然你的URL將登錄&有內容about view

嘗試類似這樣的東西。

public function actionLogin() 
{ 
    if (!\Yii::$app->user->isGuest) 
    { 
     return $this->goHome(); 
    } 

    $model = new LoginForm(); 
    if ($model->load(Yii::$app->request->post())) 
    { 
     return $this->redirect('about'); // Change it to redirect 
    } 

    return $this->render('login', [ 
     'model' => $model, 
    ]); 
} 
public function actionAbout() 
{ 
    return $this->render('about'); 
} 

希望它會有所幫助!