2011-12-07 14 views
7

Sono principiante del framework Yii. In Yii quando accedi per impostazione predefinita, reindirizza alla pagina indice. Voglio che quando accedo a Yii la pagina reindirizzerà su un'altra pagina, non sulla pagina indice. Quindi qualcuno può aiutarmi in questo. Qualsiasi aiuto o suggerimento sarà molto apprezzabile.Pagina di reindirizzamento dopo il login nel framework Yii

[modifica]

come il reindirizzamento funziona quando userò modulo utente come dopo il login nella pagina viene reindirizzato verso profilo?

+1

Si consiglia di verificare [questo link] (http://www.yiiframework.com/doc/api/1.1/CWebUser#returnUrl-detail) – lastland

risposta

13

È possibile (e, in effetti, è necessario, se viene effettuato qualsiasi reindirizzamento) specificare l'URL da reindirizzare all'interno del metodo actionLogin del controller. Dopo un accesso riuscito, si vedrà qualcosa di simile a questo codice:

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

Modificare questo a qualsiasi parametro che il metodo CController::redirect sostiene, ed è possibile controllare dove l'utente viene reindirizzato dopo il login.

Per inciso, utilizzando Yii::app()->user->returnUrl permette la pagina di reindirizzamento per restituire l'utente alla URL avevano intenzione di visitare, prima di essere reindirizzato alla pagina di login.

6

Per reindirizzare l'utente a una pagina dopo l'accesso, creare un nuovo controller in gii per la pagina a cui verrà indirizzato l'utente dopo aver effettuato l'accesso. Chiamerò questa 'app' controller qui. Gii creerà automaticamente alcuni file per te: uno sarà /protected/models/AppController.php

In AppController.php, avrai una funzione pubblica di default (metodo) chiamata actionIndex. Lo scopo di questo metodo predefinito è chiamare (render) il file /protected/views/app/index.php (anch'esso creato da gii per te). index.php è il file che i tuoi utenti vedranno una volta effettuato l'accesso. Questo è il file che desideri modificare per creare la tua app. Torna SiteController.php e modificare l'argomento di redirect() nel metodo 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')); 
      } 

Questo dovrebbe iniziare. (Questo è essenzialmente il mio post sulla discussione a the yiiframework site)

2

è possibile reindirizzare a sito/indice dopo aver effettuato l'accesso utilizzando il modulo utente.

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