2015-11-09 32 views
1

我是yii的新手。我希望我的管理員在從webapp/user/login登錄時重定向到我想要的本地主機/ webapp /故事的頁面,現在它將我重定向到index.php。Yii將管理員和經過身份驗證的用戶重定向到所需頁面

我也註冊了一個用戶,並給予該用戶一個經過身份驗證的角色,我希望當我的用戶(通過身份驗證的用戶)通過webapp/user/login登錄後,該用戶被重定向到index.php。

所以有兩件事情:

1. redirecting admin to the desired page which is webapp/story. 
2. redirecting the authenticated user to index.php. 

我使用警予用戶,右延伸。請幫我解決一下這個。 代碼的LoginController低於:

<?php 

class LoginController extends Controller 
{ 
    public $defaultAction = 'login'; 

    /** 
    * Displays the login page 
    */ 
    public function actionLogin() 
    { 
    if (Yii::app()->user->isGuest) { 
     $model=new UserLogin; 
     // collect user input data 
     if(isset($_POST['UserLogin'])) 
     { 
      $model->attributes=$_POST['UserLogin']; 
      // validate user input and redirect to previous page if valid 
      if($model->validate()) { 
       $this->lastViset(); 
       if (Yii::app()->user->returnUrl=='/index.php') 
         $this->redirect(Yii::app()->controller->module->returnUrl); 
       else// yehen par kuch aye ga according 
        $this->redirect(Yii::app()->user->returnUrl); 
      } 
     } 
     // display the login form 
     $this->render('/user/login',array('model'=>$model)); 
     } else 
     $this->redirect(Yii::app()->controller->module->returnUrl); 
    } 

    private function lastViset() { 
    $lastVisit =  User::model()->notsafe()->findByPk(Yii::app()->user->id); 
    $lastVisit->lastvisit = time(); 
    $lastVisit->save(); 
    } 

} 

回答

1

我想可能是這樣

<?php 

class LoginController extends Controller 
{ 
    public $defaultAction = 'login'; 

    /** 
    * Displays the login page 
    */ 
    public function actionLogin() 
    { 
    if (Yii::app()->user->isGuest) { 
     $model=new UserLogin; 
     // collect user input data 
     if(isset($_POST['UserLogin'])) 
     { 
      $model->attributes=$_POST['UserLogin']; 
      // validate user input and redirect to previous page if valid 
      if($model->validate()) { 

       $this->lastViset(); 

       // Old code commentede 
       //if (Yii::app()->user->returnUrl=='/index.php') 
       //  $this->redirect(Yii::app()->controller->module->returnUrl); 
       //else// yehen par kuch aye ga according 
       // $this->redirect(Yii::app()->user->returnUrl); 

       // new code 
       if (UserModule::isAdmin()){ 
        $this->redirect(array('story/index')); 
       } 
       else { 
        $this->redirect(Yii::app()->user->returnUrl); 
       } 


      } 
     } 
     // display the login form 
     $this->render('/user/login',array('model'=>$model)); 
     } else 
     $this->redirect(Yii::app()->controller->module->returnUrl); 
    } 

    private function lastViset() { 
    $lastVisit =  User::model()->notsafe()->findByPk(Yii::app()->user->id); 
    $lastVisit->lastvisit = time(); 
    $lastVisit->save(); 
    } 

} 
+0

出頭的我真的很感激,但我已經在問題中提到了錯誤的URL和IM對此感到抱歉。正確的網址是「webapp/user/login」。我認爲會在用戶擴展中的LoginController.php中進行更改。 我已經更新了這個問題..請看代碼upthere,我也更新了這個問題......! –

+0

你現在展示的代碼是你想要修改的代碼嗎? – scaisEdge

+0

是的,我的一位朋友告訴我,你必須在那裏爲你想要的東西做出改變。 –

相關問題