... 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);
...
}
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));
}
7条答案
按热度按时间vqlkdk9b1#
wr98u20j2#
我认为这将工作:
然后使用,
以重新导向。
或者您也可以使用会话帮助。
登录前设置
登录检查后重定向之前
dxpyg8gm3#
我认为这个问题最简单的答案是这个代码:
使用这个代码就是这样。
jxct1oxe4#
在
SiteController
中使用$this->redirect(Yii::app()->user->returnUrl)
。9o685dep5#
为了Yii2
在方法
actionLogin()
的控制器中,使用以下命令:它会检查登录是否来自主页(
getReturnUrl() == '/'
),然后在登录后它会将您重定向到dashboard/index
页面。否则,它会重定向到所请求的页面。vatpfxk56#
最好通过会话控制该行为(例如分页...),但是,
都可以。
xurqigkl7#
当actionID=auth时有一个条件,因此它只在action是auth时才起作用,这会打开Google auth窗口。