2011-12-07 82 views
7

我是Yii框架的新手。在Yii默認登錄時,它會重定向到索引頁面。我希望當我登錄到Yii時,頁面將重定向到另一個頁面而不是索引頁面。所以任何人都可以幫助我。任何幫助或建議都將非常可觀。在Yii框架中登錄後重定向頁面

[編輯]

重定向是如何工作的,當我將使用的用戶模塊作爲登錄頁面重定向對個人資料頁面後?

+1

您可能要檢查[此鏈接](http://www.yiiframework.com/doc/api/1.1/CWebUser#returnUrl-detail) – lastland

回答

13

您可以(並且實際上必須在發生重定向的情況下)指定要重定向到您的控制器的方法actionLogin方法中的URL。登錄成功後,你會看到這樣的代碼:

$this->redirect(Yii::app()->user->returnUrl); 

更改爲使CController::redirect方法支持的任何參數,你可以控制用戶登錄後重定向。

另外,使用Yii::app()->user->returnUrl可以使重定向頁面將用戶返回到他們在重定向到登錄頁面之前要訪問的URL。

6

要將用戶重定向到登錄後的頁面,請在gii中創建一個新的控制器,以便在用戶登錄後將用戶指向的頁面。我將在此處稱此控制器爲「應用程序」。 Gii會爲你自動創建一些文件 - 一個將會是/protected/models/AppController.php

在AppController.php中,你將有一個名爲actionIndex的默認公共函數(方法)。此默認方法的目的是調用(呈現)/protected/views/app/index.php文件(也由gii爲您創建)。 index.php是用戶登錄後將看到的文件。這是您要修改以構建應用程序的文件。返回SiteController.php並更改actionLogin()方法中的重定向()參數

if(isset($_POST['LoginForm'])) 
      { 
        $model->attributes=$_POST['LoginForm']; 
        // validate user input and redirect to the previous page if valid 
        if($model->validate() && $model->login()) 
        // since my controller is /protected/controllers/AppController.php 
          $this->redirect(array('app/index')); 
      } 

這應該讓你開始。 (這實質上是我的帖子 the yiiframework site

2

您可以在使用用戶模塊登錄後重定向到站點/索引。

'modules'=>array(
    // user extension 
    'user'=>array(
       ........... 
     # page after login 
     //'returnUrl' => array('/user/profile'), 
     'returnUrl' => array('/site/index'), 
       ........ 
    ), 
), 
0
$this->redirect($this->createUrl('yourcontroller/youraction'));