2017-07-01 144 views
0

在Yii默認登錄時,它會重定向到索引頁面。我希望當我登錄到Yii時,頁面將重定向到另一個頁面而不是索引頁面。所以任何人都可以幫助我。任何幫助或建議將是非常appreciable.here是siteController.php我actionLogin功能yii2登錄後重定向到另一頁

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

    $model = new LoginForm(); 
    if ($model->load(Yii::$app->request->post()) && $model->login()) { 
     return $this->goBack(); 
    } 
    return $this->render('login', [ 
     'model' => $model, 
    ]); 
} 
+0

你想要哪個頁面? – scaisEdge

+0

登錄後我想重定向到管理頁面 – Alvi

+0

'retuen $ this-> redirect(['contoller','action']);' – smoqadam

回答

1

您可以重定向到你prefere

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

     $model = new LoginForm(); 
     if ($model->load(Yii::$app->request->post()) && $model->login()) { 
     return $this->redirect(['/admin/index']); 
     } 
     return $this->render('login', [ 
      'model' => $model, 
     ]); 
    } 

,或者如果需要顯示的實例如頁面:視圖爲ID = $模型 - > ID

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

     $model = new LoginForm(); 
     if ($model->load(Yii::$app->request->post()) && $model->login()) { 
     return $this->redirect(['/admin/view', 'id' => $model->id]); 
     } 
     return $this->render('login', [ 
      'model' => $model, 
     ]); 
    } 
+0

解釋得更清楚您對我的評論不清楚......您的意思是adimin/id = 3 ..? – scaisEdge

+0

無論如何回答更新了樣本以查看遺傳 – scaisEdge

0

下面的例子 打開您的意見文件夾並打開站點文件夾,而是index.php文件創建一個新的頁面,只是假設ŧ他的新頁面的welcome.php和替換的歡迎指數在控制器中像下面

public function actionLogin() 
{ 
if (!Yii::$app->user->isGuest) 
{ 
return $this->goHome(); 
} 
$model = new LoginForm(); 
if ($model->load(Yii::$app->request->post()) && $model->login()) 
{ 
return $this->goBack(); 
} 
return $this->render('welcome', [ 'model' => $model, ]); 
} 
0

變化的登錄頁面,因爲這

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

     $model = new LoginForm(); 
     if ($model->load(Yii::$app->request->post()) && $model->login()) { 
      return $this->redirect(['site/loader']); 
     } 
     return $this->render('login', [ 
      'model' => $model, 
     ]); 
    } 

,並在您的控制器的情況下,我認爲現場控制器添加

public function actionLoader() 
{ 
    return $this->render('yourPage'); 
} 

希望有幫助。