모든 web.appone이 로그인해야만 action.Now/default/index/index에 로그인 양식이 있습니다. ExtJs 기본적으로 로그인 프로세스는 아약스입니다. 렌더링 및 레이아웃을 사용하지 않도록 설정하고 사용자가 로그인했는지 여부를 확인하는 플러그인을 만들었습니다 (아직 풀 ACL이 없습니다).전체 URL 변경으로 Zend_Controller_Plugin_Abstract 리디렉션이 어떻게 작동합니까? Zend_layout이 레이아웃을 사용하지 못하게합니다.
public function preDispatch(Zend_Controller_Request_Abstract $request) {
parent::preDispatch($request);
if($request->isXmlHttpRequest()){
$ViewHelper = Zend_Controller_Action_HelperBroker::getStaticHelper("ViewRenderer");
$ViewHelper->setNoRender(true);
Zend_Layout::getMvcInstance()->disableLayout();
}
$module = $request->getModuleName();
$controller = $request->getControllerName();
$action = $request->getActionName();
if(!Zend_Auth::getInstance()->hasIdentity()){
$url = "/".$module."/".$controller."/".$action;
$session = new Zend_Session_Namespace("myapp.auth");
$session->requestURL = $url;
$request->setModuleName("default");
$request->setControllerName("index");
$request->setActionName("index");
$request->setDispatched();
}
}
이 작동하지만 주소 표시 줄 여전히 원래의 요청 URL을 갖고있는 것 같아요 : 여기
는 코드입니다. 예를 들어, URL 막대에"myapp/admin/cpanel"
을 입력했는데 주소 표시 줄에 여전히
"myapp/admin/cpanel"
.at가있는 동안 로그인 페이지가 열립니다. 출력에 로그인 페이지에서 보낸 일부 HTML 렌더링이 있기 때문에 로그인이 실패합니다. 직접 맞았을 때 잘 작동합니다).
누구나 전에 경험했거나 잘못하고있는 사람이 있습니까?이 경험을 공유 할 수 있다면 기쁘게 생각합니다.
감사합니다.
안녕하십니까! 나는 당신이 잠시 동안 제안 할 것이라고 생각한다. 한 typo는'if ((array ('default', 'index', 'index')! == 배열 ($ module, $ controller, $ action) ($ module, $ controller, $ action))''신원을 확인하십시오 "감사합니다. –