【发布时间】:2014-09-03 15:37:39
【问题描述】:
我有这个路由配置:
'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,
)
),
),
),
),
意图是使用以下网址:
- /blog -> 用于列出所有博客文章
- /blog/create -> 用于创建新帖子
- /blog/this-is-the-post-title 用于查看一篇帖子
路由配置适用于第 1 点和第 3 点,但不适用于第 2 点(我得到“请求的控制器无法调度请求。”),有人能解释一下为什么吗?哪个是正确的配置?
【问题讨论】:
-
在查看后创建路由定义,我认为该路由匹配它找到的最后一条路由
-
你想对了,它有效!非常感谢。
标签: routes zend-framework2 slug