不久,我就开始使用2,并试图为具有这样规则的产品编写一条路线:
/段塞-测试
这个规则的示例如下所示:
/冷冻机-外形良好-测试12345cv
我试着用REGEX:
'details' => array(
'type' => 'Zend\Mvc\Router\Http\Regex',
'options' => array(
'route' => '(?<slug>[a-zA-Z0-9_-]+)-test(?<id>[0-9]+)(?<sufix>(av|ai|cv|ci|svb|sib|svc|sic|svi|sii|tv|ti))',
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'List',
'action' => 'details',
),
'spec' => '%slug%-test%id%%sufix%',
)
),
此外,还包括部分:
'details' => array(
'type' => 'Segment',
'options' => array(
'route' => '/:slug-test:id:sufix',
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'List',
'action' => 'details',
)
'constraints' => array(
'slug' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]*',
'sufix' => '[av|ai|cv|ci|svb|sib|svc|sic|svi|sii|tv|ti]'
)
)
),
但这不管用。有人能看出我做错了什么吗?谢谢!
发布于 2017-08-07 13:54:24
我要和Segment
一起去。我在路由配置中注意到的唯一问题是sufix
约束:而不是[av|ai|…]
,您应该键入(av|ai|…)
。
发布于 2017-08-08 06:13:31
请试试这个-
'details' => array(
'type' => 'Segment',
'options' => array(
'route' => '/:slug[-test]:id:sufix',
'defaults' => array(
'__NAMESPACE__' => 'Application\Controller',
'controller' => 'List',
'action' => 'details',
)
'constraints' => array(
'slug' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]*',
'sufix' => '[av|ai|cv|ci|svb|sib|svc|sic|svi|sii|tv|ti]'
)
)
),
在这条线上'route' => '/:slug-test:id:sufix',
你有问题,因为它认为“子弹测试”为单变量。因此,要做到这一点,您应该将"-test“与”段塞“变量分开。
'route' => '/:slug[-test]:id:sufix',
https://stackoverflow.com/questions/45547364
复制相似问题