Yii 응용 프로그램과 nginx 서버를 사용하고 있습니다.nginx 서버에서 Yii returnUrl 사용
내 문제는 성공한 로그인 후 리다이렉트하는 SiteController.php에있는 Yii::app()->user->returnUrl
의 값은 내가 어떤 페이지에서 왔는지에 관계없이 항상 mysite/index.php라는 것입니다.
어떻게 이전 페이지 URL의 값으로 수정할 수 있습니까?
Yii 응용 프로그램과 nginx 서버를 사용하고 있습니다.nginx 서버에서 Yii returnUrl 사용
내 문제는 성공한 로그인 후 리다이렉트하는 SiteController.php에있는 Yii::app()->user->returnUrl
의 값은 내가 어떤 페이지에서 왔는지에 관계없이 항상 mysite/index.php라는 것입니다.
어떻게 이전 페이지 URL의 값으로 수정할 수 있습니까?
일부 변경 사항을 변경하려는 경우 표시되는 기본 동작입니다. 이러한 선택의 동일한 부분은 당신이 CWebUser을 확장하고 당신이 필요로하는 기능
class WebUser extends CWebUser
{
}
&을 추가하고 선택을 지금 수행 한 설정
'user'=>array(
'class' => 'WebUser',
'loginUrl' => array('user/login'),
'defaultDashboard' => array('user/dashboard'),
)
에서 그것을 언급해야한다는 것입니다! 원하는 returnUrl이 beforeLogin 함수에서 고정 된 경우 WebUser 클래스에서이 함수를 재정의하고 returnUrl을 수동으로 설정해야합니다. 자세한 정보는 Official API for CWebUser입니다. 그러나 returnUrl가 & 고정되어 있지 않은 경우 당신이 당신이 loginRequired 기능
public function loginRequired() {
$app=Yii::app();
$request=$app->getRequest();
$controller=$app->controller;
$actionParameters=$controller->actionParams;
if(!$request->getIsAjaxRequest()) {
if(empty($actionParameters))
$this->setReturnUrl(array($controller->route));
else
$this->setReturnUrl(array($controller->route,$actionParameters));
}
if(($url=$this->loginUrl)!==null) {
if(is_array($url)) {
$route=isset($url[0]) ? $url[0] : $app->defaultController;
$url=$app->createUrl($route,array_splice($url,1));
}
$request->redirect($url);
}
else
throw new CHttpException(403,Yii::t('yii','Login Required'));
}
&에게 마지막 단계를 오버라이드 (override) 할 필요가 로그인을 필요로 모든 작업을 거의 설정하려면이 성공적으로 로그인 한 후 루프를 방지
if($model->validate() && $model->login()){
$returnUrl=Yii::app()->user->returnUrl;
$url=(is_array($returnUrl))?$returnUrl[0]:$returnUrl;
if(isset($returnUrl)&&stripos(strtolower($url),'logout')==false&&stripos(strtolower($url),'login')==false) {
$this->redirect($this->createUrl($returnUrl[0],$returnUrl[1]));
} else {
$this->redirect($this->createUrl($returnUrl[0],$returnUrl[1]));
}
양식을 제출하기 전에'Yii :: app() -> user-> returnUrl = 'previous/page/url'; – Stu
번호. 내 actionLogin에서 Yii :: app() -> user-> returnUrl의 값을 확인하면 이미 '이전/페이지/url'대신 'mysite/index.php'로 설정되어 있습니다. – user1806263