diff --git a/apps/basic/controllers/SiteController.php b/apps/basic/controllers/SiteController.php index 119628088a..e243223332 100644 --- a/apps/basic/controllers/SiteController.php +++ b/apps/basic/controllers/SiteController.php @@ -61,7 +61,7 @@ class SiteController extends Controller { $model = new LoginForm(); if ($model->load($_POST) && $model->login()) { - return $this->goHome(); + return $this->goBack(); } else { return $this->render('login', array( 'model' => $model, diff --git a/framework/yii/web/Controller.php b/framework/yii/web/Controller.php index 6b8afa4fce..7509186539 100644 --- a/framework/yii/web/Controller.php +++ b/framework/yii/web/Controller.php @@ -145,6 +145,19 @@ class Controller extends \yii\base\Controller return Yii::$app->getResponse()->redirect(Yii::$app->getHomeUrl()); } + /** + * Redirects the browser to the last visited page. + * @param string|array $defaultUrl the default return URL in case it was not set previously. + * If this is null and the return URL was not set previously, [[Application::homeUrl]] will be redirected to. + * Please refer to [[User::setReturnUrl()]] on accepted format of the URL. + * @return Response the current response object + * @see User::getReturnUrl() + */ + public function goBack($defaultUrl = null) + { + return Yii::$app->getResponse()->redirect(Yii::$app->getUser()->getReturnUrl($defaultUrl)); + } + /** * Refreshes the current page. * This method is a shortcut to [[Response::refresh()]].