2014-07-13 51 views
0

我有這樣的路由配置:混合行動和鼻涕蟲Zend框架2路線

'router' => array(
    'routes' => array(
     'blog' => array(
      'type' => 'segment', 
      'options' => array(
       'route' => '/blog', 
       'defaults' => array(
        'controller' => 'Blog\Controller\Blog', 
        'action' => 'list', 
       ), 
      ), 
      'may_terminate' => true, 
      'child_routes' => array(
       'create' => array(
        'type' => 'literal', 
        'options' => array(
         'route' => '/create', 
         'defaults' => array(
          'action' => 'create', 
         ), 
        ), 
        'may_terminate' => true, 
       ), 
       'view' => array(
        'type' => 'segment', 
        'options' => array(
         'route' => '/[:slug]', 
         'constraints' => array(
          'slug' => '[a-zA-Z][a-zA-Z0-9_-]*', 
         ), 
         'defaults' => array(
          'action' => 'view', 
         ), 
        ), 
        'may_terminate' => true, 
       ) 
      ), 
     ), 
    ), 
), 

意圖是使用以下網址:

  1. /博客 - >上市的所有博客文章
  2. /博客/創建 - >爲創造新的崗位
  3. /博客/本,是最標題後一個職位的看法

路由配置適用於點1和3,但不適用於二號(我得到「請求的控制器無法發送請求。」),有人可以解釋我爲什麼嗎?哪個是正確的配置?

+1

把查看後創建路線定義,我認爲路線匹配它找到的最後一個路線 – Exlord

+0

你認爲正確,它的工作原理!非常感謝。 –

回答

1

Router將返回它可以在一組相同級別的子路由中找到的最後一個路由定義。

爲同級兒童路線把Segment路線定義在Literals之前。