2017-09-12 14 views
0

, 나는 이런 식으로 뭔가를 가지고 :ZF3 : 방법 및 경로를 기반으로 특정 컨트롤러/동작으로 라우팅하는 방법? 내 모듈의 <code>module.config.php</code>에서

내가 달성하기 위해 노력하고있어
namespace Application; 

return [ 
    //... 
    // myroute1 will route to IndexController fooAction if the route is matching '/index/foo' but regardless of request method 
    'myroute1' => [ 
     'type' => Zend\Router\Http\Literal::class, 
     'options' => [ 
      'route' => '/index/foo', 
      'defaults' => [ 
       'controller' => Controller\IndexController::class, 
       'action'  => 'foo', 
      ], 
     ], 
    ], 

    // myroute2 will route to IndexController fooAction if the route is request method is GET but regardless of requested route 
    'myroute2' => [ 
     'type' => Zend\Router\Http\Method::class, 
     'options' => [ 
      'verb'  => 'get', 
      'defaults' => [ 
       'controller' => Controller\IndexController::class, 
       'action'  => 'foo', 
      ], 
     ], 
    ], 
    //... 
]; 

:

  • 만약 경로 /인덱스/foo는가 요청 및 에 의해 요청 GET 방법이면 으로 라우팅해야합니다.fooAction
  • r oute /인덱스/foo는가 요청 및 POST 방법으로 요청, 다음은 에 인 IndexController를 전달해야 액션 어떻게 달성하는

(이 fooAction 여기 barAction있어하지 통지) 그?

답변

2

메모 나 자신을 확인하고 다른 사람이 @ delboy1978uk의 대답에 추가 참고로, 찾고.

  • GET /index/foo => 인 IndexController fooAction
  • POST /index/foo => 인 IndexController barAction

그래서 module.config.php 파일의 코드가 될 수 있습니다

내가 찾던 그 대답은이 같은 것입니다 이렇게 :

return [ 
    //... 
    'myroute1' => [// The parent route will match the route "/index/foo" 
     'type' => Zend\Router\Http\Literal::class, 
     'options' => [ 
      'route' => '/index/foo', 
      'defaults' => [ 
       'controller' => Controller\IndexController::class, 
       'action'  => 'foo', 
      ], 
     ], 
     'may_terminate' => false, 
     'child_routes' => [ 
      'myroute1get' => [// This child route will match GET request 
       'type' => Method::class, 
       'options' => [ 
        'verb' => 'get', 
        'defaults' => [ 
         'controller' => Controller\IndexController::class, 
         'action'  => 'foo' 
        ], 
       ], 
      ], 
      'myroute1post' => [// This child route will match POST request 
       'type' => Method::class, 
       'options' => [ 
        'verb' => 'post', 
        'defaults' => [ 
         'controller' => Controller\IndexController::class, 
         'action'  => 'bar' 
        ], 
       ], 
      ] 
     ], 
    ], 
    //... 
]; 
+0

방금 ​​시간을 저장했습니다. 경례! –