2015-11-09 2 views
1

Я новичок в yii. Я хочу, чтобы мой администратор при входе из webapp/user/login перенаправлялся на страницу, которую я хочу, это localhost/webapp/story, прямо сейчас перенаправляет меня на 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. 

Я использую YII пользователя и правильное расширение. Пожалуйста, помогите мне с этим. Код 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 в вопросе, и им жаль, что. правильным URL-адресом является «webapp/user/login». Я думаю, что изменения будут внесены в LoginController.php, который находится в расширении пользователя. Я обновил вопрос .. см. Код upthere, и я также обновил вопрос ... !! –

+0

Код, который вы показали сейчас, является тем, который вы хотите изменить? – scaisEdge

+0

Да, мой друг, мой друг сказал мне, что вы должны вносить изменения там, где хотите. –

Смежные вопросы