2015-12-03 74 views
2

開始在我的Zend Framework 2應用程序,我需要構建起與給定段的路由匹配任何東西。Zend框架2匹配任何路線與給定段

要清楚,考慮我想匹配任何開始/foo,所以/foo/foo/bar/foo/baz/foo/bar/baz,...

我可以使用Wildcard路由器做

'type' => 'Zend\Mvc\Router\Http\Segment', 
'options' => [ 
    'route' => '/foo', 
    'defaults' => [ 
     'controller' => 'Application\Controller\Index', 
     'action'  => 'index', 
    ], 
], 
'may_terminate' => true, 
'child_routes' => [ 
    'anything' => [ 
     'type' => 'Wildcard' 
    ] 
] 

Wildcard已棄用,所以我想避免使用它。有沒有辦法以另一種方式獲得我正在尋找的東西?

+0

嗨,這是您的網址路線允許的參數的最大數量? – JorelC

+0

@JorelC在理論上,我不想擁有最大數量的允許參數 – marcosh

+0

究竟是什麼讓你認爲'Wilcard'路由器已被棄用?據我所知,可以看到它不是。編輯:我看到,文檔聲明它已過時,但代碼本身沒有指向它(奇怪!)。無論如何,你可以看看使用Regex路由器。 – netiul

回答

0
'foo' => [ 
    'type' => 'Regex', 
    'options' => [ 
     'regex' => '/foo(/(?<action>[a-zA-Z0-9_-]+))?', 
     'defaults' => [ 
      '__NAMESPACE__' => 'Application\Controller', 
      'module' => 'Application', 
      'controller' => 'Foo', 
      'action' => 'index', 
     ], 
     'spec' => '/foo/%action%', 
    ], 
],