0

젠드 프레임 워크 2 라우터 객체에 문제가 있습니다. 성공하지 않고 빠른 시작 라우팅 메커니즘 예제에 Zend\Paginator을 구현하려고합니다. 설명해 드리죠 :zend2 라우팅 페이징 기 및 모듈

을 나는이 같은 끝났다 빠른 시작을 수행 한 후 : 내 검색/색인 페이지 매기기를 구현하려고 할 때

'album' => array(
    'type' => 'Segment', 
    'options' => array(
     'route' => '/album[/:action][/:id]', 
     'constraints' => array(
      'action' => '[a-z][a-z0-9\-]*', 
      'id' => '[0-9]+' 
     ), 
     'defaults' => array(
      'controller' => 'Album', 
      'action' => 'index' 
     ) 
    ) 
) 

문제가 발생한다. 라우터에 :page var을 :id에 할당하므로 /album[/:action][/:id][/:page]과 같은 라우터가 필요합니다. 나는 문제없이 작동 내 추가/편집 작업을

$matches = $this->getEvent()->getRouteMatch(); 
$id = $matches->getParam('page'); 

/album[/:action][/:page] 같은 및 호출로 끝나는 :id 부분을 제거하지만 상황이 연상 기호를 유지 좋아한다. 그래서 제 질문은 : 내가 좋아하는 것처럼 페이징기에 대해서만 중복 라우터를 만들지 않고이 작업을 수행 할 수 있습니까? 뭔가 잘못하고 있는거야?

+0

문제는 당신이 id를 말하고 페이지가 모두 선택 사항이며 모두 정수와 일치합니다. 정규식이 일치하는 항목을 알지 못합니다. 고유하지 않습니다. – Andrew

답변

1

그것은 경로에 예로서, 충분히 독특한 아니다 :

/album[/:action][/:id][/:page] 

ID와 페이지는 선택 사항이며 우리는이 경로와 일치하려고하면 모두 정수에게

가 될 수 있습니다

을/앨범/색인/99

99는 ID가 일치하거나 페이지가 존재하지 않거나 페이지가 ID가 존재하지 않을 수 있습니다. 어떤 것이 있는지 알 수있는 방법이 없으므로 작동하지 않습니다.

당신은, 식별자이 같은 추가 할 수 있습니다 그럼 당신은 당신이 id를 알고 있는지 확인하기 위해 거기에 그대로있을 것

/album[/:action][/id/:id][/:page] 

을 :

/album/index/id/99 # :id = 99 

또는 /앨범/색인/99 # : 페이지 = 99

+0

Excelent !. U 락! –

관련 문제