2010-02-05 4 views
1

인사 모두Zend Framework에서 홀수 개의 매개 변수를 얻는 방법은 무엇입니까?

request 객체를 사용하여, 나는이 URI에서와 같이 단독 값을 얻을 수 없습니다

http://mydomain.com/controller/action/value1 

$request->getParams()value1을 반환하지 않습니다 사용.

출력 : 키가없는

array([controller] => 'controller', [action] => 'action') 

.

문제 자체가 간단하고 URI를 직접 파싱 할 수 있지만 사실 ZF가이를 수행하기를 원합니다 (맞습니까?). 나는 힌트를 사용하여 Google을 찾지 못했습니다.

값없이 키를 가져 오는 방법은 무엇입니까?

+0

라우팅이 트릭입니다;) 모두에게 감사드립니다. 가장 이해하기 쉬운 답을 쳤습니다. – PvB

답변

5

Zend Framework는 기본적으로 URL의 매개 변수가 /key/value의 형식이어야한다고 예상합니다. 이 시도 :

http://mydomain.com/controller/action/key1/value1

print_r($request->getParams()); 

결과는 다음과 같습니다

Array 
(
    [controller] => controller 
    [action] => action 
    [key1] => value1 
) 

편집 : 다른 사람이 언급 한 바와 같이, 당신은 당신이 Zend_Controller_Router 살펴 보셔야합니다 http://mydomain.com/controller/action/value1 고수하십시오.

0

필요한 필드를 추가하여 경로를 수정하십시오.

0

지도가 보이는 경로는 무엇입니까? 기본 경로 인 경우 구문 분석 규칙 key/value에 의존하므로이 경로가 예상됩니다.

그 간단한 규칙을 따르지 않으면 해당 URI에 대한 규칙과 일치하는 새 경로를 만들어야합니다.

일반적으로 값이없는 키가 있다고 생각되면 경로에서 해당 값의 기본값을 제공해야합니다.

0

이 경로에 경로를 정의합니다.(값은 십진수 값 인 경우 필요에 맞게 정규 표현식을 변경하지 않을 경우) 다음과 같이 INI 파일 :

routes.your_route.route = "controller/action/:value1" 
routes.your_route.defaults.controller = "controller" 
routes.your_route.defaults.action = "action" 
routes.your_route.reqs.value1 = "\d+" 

은 그럼 당신은 getParam (들)를 사용하여 액션의 값에 액세스 할 수 있습니다.

관련 문제