2012-12-26 2 views
0

동일한 컨트롤러와 동작을 호출하는 4 개의 child_routes가 있습니다.경로의 표준 매개 변수

 

    'noticia' => array(
     'type' => 'Segment', 
     'options' => array(
      'route' => 'noticia[/:slug]', 
      'constraints' => array(
        'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 
        'action'  => '[a-zA-Z][a-zA-Z0-9_-]*', 
      ), 
      'defaults' => array(
       '__NAMESPACE__' => 'Application\Controller', 
       'controller' => 'Post', 
       'action'  => 'index', 
      ), 
     ), 
    ), 
    'dica' => array(
     'type' => 'Segment', 
     'options' => array(
      'route' => 'dica[/:slug]', 
      'constraints' => array(
       'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 
       'action'  => '[a-zA-Z][a-zA-Z0-9_-]*', 
      ), 
      'defaults' => array(
       '__NAMESPACE__' => 'Application\Controller', 
       'controller' => 'Post', 
       'action'  => 'index', 
      ), 
     ), 
    ), 
    'ovarejao' => array(
     'type' => 'Segment', 
     'options' => array(
      'route' => 'o-varejao[/:slug]', 
      'constraints' => array(
       'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 
       'action'  => '[a-zA-Z][a-zA-Z0-9_-]*', 
      ), 
      'defaults' => array(
       '__NAMESPACE__' => 'Application\Controller', 
       'controller' => 'Post', 
       'action'  => 'index', 
      ), 
     ), 
    ), 
    'servicos' => array(
     'type' => 'Segment', 
     'options' => array(
      'route' => 'servicos[/:slug]', 
      'constraints' => array(
       'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 
       'action'  => '[a-zA-Z][a-zA-Z0-9_-]*', 
      ), 
      'defaults' => array(
       '__NAMESPACE__' => 'Application\Controller', 
       'controller' => 'Post', 
       'action'  => 'index', 
      ), 
     ), 
    ), 

내가 필요한 것은 이러한 경로를 구분할 수 있도록 매개 변수를 전달하는 것입니다. 어떻게?

답변

1

귀하의 구조가 조금 벗어난 것 같습니다. 한 컨트롤러의 한 동작에 대해 네 가지 다른 경로가있는 이유는 무엇입니까? 이것은 거의 이해가되지 않습니다.

오히려 경로를 사용자가 설정 한 경로의 각 지금까지 servicosovarejaoservicosAction, ovarejaoAction, dicaActionnoticiaAction

같은 유사한 행동와 PostController에 dica, noticia는 행동이 매우 유사하다면 자신의 각각의보기를 사용하면 모든 작업에 대해 하나의 템플릿을 사용할 수도 있습니다. 그러면 템플릿을 좀 더 쉽게 만들 수 있습니다. 이것은 다음과 같이 이루어집니다 :

public function servicosAction() 
{ 
    $vm = new ViewModel(); 
    $vm->setTemplate('namespace/post/multiple.phtml'); 

    // Grab data from your model here with some parameter 

    return $vm->setVariables(array(
     //key-value paired array of view variables 
    )); 
} 

경우에 따라 이것이 문제를 해결하십시오. 달성하고자하는 것이 정확히 무엇입니까?

관련 문제