J'ai la fonction de connexion sur son contrôle de fonction réussi va à Dashboard / Index Code>. Supposons que l'utilisateur entrait
dirigeant / index index> La page reviennent à la connexion en raison de règles d'accès définies, je veux juste que
Prains / Index Code>. P>
7 Réponses :
Je pense que cela fonctionnera: puis utiliser, p> à rediriger. p> ou vous Peut également prendre de l'aide de la session. p> avant le jeu de connexion p> juste avant de rediriger après la vérification de la connexion p>
... Controller extends CController (){ ... public function init() { if($this->isValidForRedirectRequest(Yii::app()->request)){ Yii::app()->user->returnUrl = Yii::app()->request->requestUri; } } ... public function isValidForRedirectRequest(){ /*something validations of request, like isAjax or other */ } }... ... LoginController()...{ if($authIdentity->authenticate()) $this->redirect(Yii::app()->user->returnUrl); ... }
Cette ligne de code a fonctionné pour moi. Merci de votre aide. $ ceci-> Redirection (Yii :: App () -> Utilisateur-> Vert);
Je suis désolé, mais ce n'est pas la façon dont il est censé être fait. Tout ce dont vous avez besoin est d'ajouter yii :: app () -> user-> loginRequirequité () code> à l'action nécessitant une connexion (ou utilisez des règles d'accès). Yii fait le reste pour vous. Pas besoin de déconner manuellement avec des redirections!
Je pense que la réponse la plus simple pour cette question est ce code:
$this->redirect(Yii::app()->request->urlReferrer);
pour yii2. strong> dans le contrôleur dans la méthode actionlogin () code> Utilisez ceci: p>
if (Yii::$app->user->getReturnUrl() == '/') {
return $this->redirect('dashboard/index');
} else {
return $this->redirect(Yii::$app->user->getReturnUrl());
}
Il est préférable de contrôler ce comportement par des sessions (pagination par exemple, ...) mais, fonctionnera. p> p>
Utilisez $ ceci-> redirection (yii :: app (app (app () -> user-> returnerl) code> dans votre
sitecontroller code>.
public function actionLogin() {
$this->setTheme();
$this->layout = '//layouts/login';
$model = new LoginForm;
// if it is ajax validation request
if (isset($_POST['ajax']) && $_POST['ajax'] === 'login-form') {
echo CActiveForm::validate($model);
Yii::app()->end();
}
// collect user input data
if (isset($_POST['LoginForm'])) {
$model->attributes = $_POST['LoginForm'];
// validate user input and redirect to the previous page if valid
if ($model->validate() && $model->login())
$this->redirect(Yii::app()->user->returnUrl);
}
// display the login form
$this->render('login', array('model' => $model));
}
Il y a une condition lorsque ActionID = auth, de sorte que cela ne fonctionne que lorsque l'action est authentique qui ouvre la fenêtre Google Auth.
Lorsque vous déconnectez l'utilisateur vérifiant les règles d'accès. Passez l'URL actuelle dans la chaîne de requête. Et redirige juste à cela si elles se sont connectées avec succès.