2011-12-07 35 views
7

No soy miembro de Yii Framework. En Yii, cuando inicias sesión por defecto, redirige a la página de índice. Quiero que cuando inicie sesión en Yii, la página redirija a otra página, no a la index. Entonces, ¿alguien puede ayudarme en esto? Cualquier ayuda o sugerencia será altamente apreciable.Redirigir la página después de iniciar sesión en Yii framework

[editar]

cómo el redireccionamiento no funcionará si no voy a utilizar como módulo de usuario de inicio de sesión después de la página se redirige hacia la página de perfil?

+1

Es posible que desee comprobar [este enlace] (http://www.yiiframework.com/doc/api/1.1/CWebUser#returnUrl-detail) – lastland

Respuesta

13

Puede (y de hecho, debe, si se va a realizar alguna redirección) especificar la URL para redirigir al interior del método actionLogin de su controlador. Después de un inicio de sesión con éxito, verá algo como esto Código:

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

Cambiar esto a cualquier parámetro que soporta el método CController::redirect, y se puede controlar dónde se redirige al usuario después de iniciar sesión.

Como un lado, el uso de Yii::app()->user->returnUrl permite que la página de redirección devuelva al usuario a la URL que pretendían visitar antes de ser redirigido a la página de inicio de sesión.

6

Para redirigir al usuario a una página después de iniciar sesión, cree un nuevo controlador en gii para la página a la que se dirigirá su usuario después de que inicie sesión. Llamaré a esta aplicación de controlador aquí. Gii creará automágicamente algunos archivos para usted: uno será /protected/models/AppController.php

En AppController.php, tendrá una función pública predeterminada (método) llamada actionIndex. El propósito de este método predeterminado es llamar (procesar) el archivo /protected/views/app/index.php (también creado por gii para usted). index.php es el archivo que verán tus usuarios una vez que inicien sesión. Ese es el archivo que querrás modificar para compilar tu aplicación. Volver a SiteController.php y cambiar el argumento de redirección() en el método 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')); 
      } 

Esto debería empezar. (Esta es esencialmente mi publicación en el debate en the yiiframework site)

2

puede redirigir al sitio/índice después de iniciar sesión utilizando el módulo de usuario.

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