Regex를 사용하여 내 경로를 만들었습니다. 내 경로에 사용자가 지정한 경우가 아니면 URL 도우미에 표시하지 않으려는 몇 가지 선택적 매개 변수가 있습니다. 이것을 어떻게 할 수 있습니까? Zend_Controller_Router_Route_Regex 역방향 옵션 매개 변수
이
내가 현재 $route = new Zend_Controller_Router_Route_Regex(
'([a-zA-Z-_0-9-]+)-Widgets(?:/page/(\d+))?(?:/limit/(\d+))',
array(
'controller' => 'widget',
'action' => 'list',
),
array(
1 => 'color',
2 => 'page',
3 => 'limit'
),
'%s-Widgets/'
);
$router->addRoute('color_widgets', $route);
내가 다음 코드를
echo $this->url(array('page' => $page), 'color_widgets', false);
이/블루 위젯 결과 /과 URL로 페이지를 전송하지 않습니다를 다음과 URL 도우미를 호출 무슨이다 . 내가
$route = new Zend_Controller_Router_Route_Regex(
'([a-zA-Z-_0-9-]+)-Widgets(?:/page/(\d+))?(?:/limit/(\d+))',
array(
'controller' => 'widget',
'action' => 'list',
'page' => 1
),
array(
1 => 'color',
2 => 'page',
3 => 'limit'
),
'%s-Widgets/page/%d'
);
그러나이 내 문제가 해결되지 않는 라우터의 역을 변경하여이 문제를 해결할 수 있습니다 나는 URL
/블루 위젯/페이지/1/제한/10 한계 아무튼이 있다고 이 사용자가 /블루 위젯에서이다와 'T는 다시 나는 다음과 같은
$route = new Zend_Controller_Router_Route_Regex(
'([a-zA-Z-_0-9-]+)-Widgets(?:/page/(\d+))?(?:/limit/(\d+))',
array(
'controller' => 'widget',
'action' => 'list',
'page' => 1,
'limit' => 10
),
array(
1 => 'color',
2 => 'page',
3 => 'limit'
),
'%s-Widgets/page/%d/limit/%d'
);
문제와 그 문제를 해결할 수 있습니다 보여/나는 다음 코드 블루 위젯의 다음 페이지로 먹고 싶어
echo $this->url(array('page' => $page), 'color_widgets', false);
그들은 실제로 /블루 위젯/페이지/2/한계로 이동합니다/10
실제로 에게 먹고 싶어/블루 위젯/페이지/2
어떻게 젠드 프레임 워크로이 작업을 수행합니다.
감사합니다. 맞춤 경로를 작성하지 않아도되었습니다. Router_Route를 사용해 보겠습니다. – user1287238