2011-02-28 4 views
2

페이지 목록 (예 : 위치 목록)에 대한 사용자 지정 경로를 사용하는 ZF 응용 프로그램에서 해당 라우팅 값이 작동하는 방식이나 일반적인 방식을 이해하는 데 문제가 있습니다. 표현식을 작동하게 만듭니다. http://domain.com/locationshttp://domain.com/location/list/page/1으로 이동 한 다음 다음 주소 (http://domain.com/locations/2 ->http://domain.com/location/list/page/2 등)를 보내주십시오.다중 페이지 섹션에 대한 Zend_Controller_Router_Rewrite 및 routes.ini

문제는 빈칸을 식별하는 것입니다 (예 : http://domain.com/locations). ,

routes.locations-page.route = locations/:page 
routes.locations-page.defaults.controller = locations 
routes.locations-page.defaults.action = list-new 
;routes.locations-page.reqs.page = \d* - does not work 
routes.locations-page.reqs.page = ^[\d]*$ 

무엇 reqex http://domain.com/locations을 잡을 것 : 내 routes.ini에서

, 나는 (작동하지 않고/^ [\ d를] * $/간단한는 preg_match에서 작업 않는)가 http://domain.com/locations/1http://domain.com/locations/2 시나리오는 단일 경로에 있습니까?

들으

URL 구조가 다르기 때문에 같은 규칙에 URL을 http://domain.com/locationshttp://domain.com/locations/2 일치 할 수 없습니다

답변

0

. 그러나 당신이하고 싶은 것을 성취하기 위해 다음을 시도 할 수 있습니다. 부트 스트랩 파일에서

,

$r = new Zend_Controller_Router_Route_Regex('locations/(*)', 
        array('controller' => 'locations', 'action' => 'list-new'), 
array(1 => 'locationID')); 
    $router->addRoute('add-location', $r); 

는 또한 경로를 추가하려면 원하는 방법을 사용할 수 있습니다. 당신의 위치 컨트롤러에서

,
$locationID = $this->_getParam('locationID'); 

이제 앞으로 적절한 조치로이 값을 기준으로합니다.

+0

흠 ... 내가 가지고있는 것과 꽤 유사하지만 정규식이 나를 위해 작동하지 않습니다. 끝에 0이 필요한 초기 상황에서는 다시 갇혀 버립니다. 내가 모호한 mod_rewrite 리디렉션 위치 -> 위치/0을하고 있어요 – timpone

+0

@timpone은 "locations/(*)"가 "locations /"와 일치하지 않습니까? – emaillenin

관련 문제