2012-11-13 3 views
1

나는 라우터 test/view을 가지고 있으며 test/view/id/123과 같은 일부 매개 변수를 전달하고 싶습니다.Zend Framework 2에서 경로를 사용하여 params를 전달하는 방법은 무엇입니까?

이 매개 변수를 zf2 라우터에 추가하는 방법을 모르겠습니다.

'router' => array(
     'routes' => array(
      'test' => array(
       'type' => 'Literal', 
       'options' => array(
        'route' => '/test', 
        'defaults' => array(
         '__NAMESPACE__' => 'test\Controller', 
         'controller' => 'Index', 
         'action'  => 'index', 
        ), 
       ), 
       'may_terminate' => true, 
       'child_routes' => array(
        'view' => array(
         'type' => 'Literal', 
         'options' => array(
          'route' => '/view', 
          'defaults' => array(
           'controller' => 'Index', 
           'action'  => 'view', 
          ), 
         ), 
        ), 
       ), 
      ), 
     ), 
), 

i view을 자식 경로로 설정했지만 해당 매개 변수를 추가 할 위치가 확실하지 않습니다.

내가 'route' => '/view/:id/:value'

'defaults' => array(
    'controller' => 'Index', 
    'action'  => 'view', 
    'id'   => 'value', 
) 

을 시도했지만 그들은 내가이 모든 작동 방식을 이해하는 것을 시도하고있다

작동하지 않습니다.

어떤 아이디어가 있습니까? 사용하여 감사

당신의 ControllerAction 그런 다음 매개 변수 "시험 ID"를 얻을 수 있습니다에서

답변

5
'router' => array(
    'routes' => array(
     'test-view' => array(
      'type' => 'segment', 
      'options' => array(
       'route' => '/test/view/:testId[/]', 
       'constraints' => array(
        'testId'  => '[0-9]+', 
       ), 
       'defaults' => array(
        'controller' => 'Test\Controller\Index', 
        'action' => 'view' 
       ), 
      ), 
     ), 

: Btw는

$this->params('testId'); 

은 : 위의 경로는이 같은 URL을 제공합니다 /test/view/123을 - 당신이 제거받을 수 있습니다 생각 "id"param 중 하나입니다.

이 페이지의 한 종류에 대한 링크를 만들려면 $this->url('test-view', array('testId' => 123))을보기 중 하나에 사용할 수 있습니다.

+0

이상하게 작동하지 않지만 여전히 404가 발생합니다 – Patrioticcow

+0

스켈레톤 앱을 사용합니까? "Test"모듈이 필요합니다. 잠깐, 내가 너 한테 줄께. – pebbo

+0

테스트 모듈, 뷰 동작 및 module.config가 있습니다. 예 : – Patrioticcow

관련 문제