2012-12-16 1 views
0

작동하지 :젠드 URL보기 도우미 내가 젠드 프레임 워크 1.12를 사용하고이 경로를 가지고있어 정규식 경로

$router->addRoute('item_start', 
    new Zend_Controller_Router_Route_Regex(
      '(foo|bar|baz)', 
      array(
       'module'  => 'default', 
       'controller' => 'item', 
       'action'  => 'start' 
      ), 
      array(
       1 => 'area' 
      ), 
      '%s' 
     ) 
); 

문제는, 내가 '/ foo는'호출하고보기에 URL 도우미를 사용하는 경우,

$this->url(array("page"=>1)); 
// returns '/foo' (expected '/foo/page/1') 

$this->url(array("page"=>1), "item_start", true); 
// also returns '/foo' 

어떤 생각이 어떻게 URL로 페이지 매개 변수를 얻을 : 그것은 나에게 매개 변수를 제공하지 않습니다? 표준 경로처럼 와일드 카드를 사용할 수 없습니까?

답변

1

, 당신은 표준 경로 클래스를 사용하려면이 경로를 변경 한 다음 와일드 카드 옵션을 유지할 수 :

$router->addRoute('item_start', 
    new Zend_Controller_Router_Route(
      ':area/*', 
      array(
       'module'  => 'default', 
       'controller' => 'item', 
       'action'  => 'start' 
      ), 
      array(
       'area' => '(foo|bar|baz)' 
      ) 
     ) 
); 

// in your view: 
echo $this->url(array('area' => 'foo', 'page' => 1), 'item_start'); 
+0

아, 값을 제한하기 위해 세 번째 매개 변수를 완전히 잊어 버렸습니다. 나는 당신의 솔루션으로 갈 것이고, 더 유연 해 보인다. 고마워! – Shocker

1

Regex 경로에 page 매개 변수가 없기 때문에 url view-helper가 매개 변수를 사용하여 Route::assemble()을 호출하면 사용자의 page 값이 무시됩니다. 마음에 와서

두 가지 선택 사항은 다음과 같습니다

  1. 쿼리 문자열 경로의 외부 page 매개 변수를 관리 A (기본 값 아마도 옵션) 포함하도록 정규식을 수정 page 매개 변수
  2. .
  3. 다윗의 제안에 추가
+0

두 번째 포인트는 좋은 – coolguy

+0

감사를 보이는을, 1. 확실히 얻을 수 복잡한, 더 많은 매개 변수를 원할 때, 2. 좋은 해결 방법이지만 새로운 URL 도우미가 필요합니다. Tim의 솔루션이 내 경우에 가장 좋은 것 같습니다. :) (미안하지만 올바른 대답을 하나만 설정할 수 있습니다.) – Shocker

+0

땀이 나지 않으므로 기꺼이 도와 드리겠습니다. 건배. ;-) –