私はその成功した機能制御で機能ログインを持っていますdashboard/index
. アクセスルールが定義されているため、ユーザーがleads/index
ページに戻ってログインするとします。ログインが成功した後、最後に入力された URL に移動しますleads/index
。
8066 次
7 に答える
4
... 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);
...
}
于 2013-04-22T12:18:12.907 に答える
1
この質問に対する最も簡単な答えは、次のコードだと思います。
$this->redirect(Yii::app()->request->urlReferrer);
このコードを使用してください。
于 2015-09-23T09:14:43.593 に答える
1
Yii2 用。
メソッドのコントローラーでは、actionLogin()
これを使用します。
if (Yii::$app->user->getReturnUrl() == '/') {
return $this->redirect('dashboard/index');
} else {
return $this->redirect(Yii::$app->user->getReturnUrl());
}
ログインがホームページ ( getReturnUrl() == '/'
) からのものかどうかを確認し、ログイン後にページにリダイレクトしdashboard/index
ます。それ以外の場合は、要求されたページにリダイレクトされます。
于 2016-08-15T12:47:56.460 に答える
1
で使用$this->redirect(Yii::app()->user->returnUrl)
しますSiteController
。
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));
}
于 2018-07-12T04:51:50.013 に答える
0
セッションごとにその動作を制御することをお勧めします (たとえば、ページネーションなど)。
return $this->goBack();
動作します。
于 2016-08-15T12:54:23.367 に答える