2012-12-26 66 views
0

我有四個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

我認爲你的結構有點不合適。爲何一個控制器的一個動作有四條不同的路線?這幾乎沒有意義。

相反的路線每次所設置的路線至今servicosovarejaodicanoticia與像servicosActionovarejaoActiondicaActionnoticiaAction

類似行動PostController中如果操作是非常相似的相應的視圖,你也可以使用一個模板來執行所有的操作,這將使模板更容易一些。這是這樣做的:

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 
    )); 
} 

如果這不符合您的標準,請讓您的問題更清楚。究竟是什麼,你想實現?