不久我就开始使用Zend Framework 2了,我正在尝试为具有类似规则的产品编写路由:
/ [蛞蝓] -test [ID] [AV | AI | CV | CI | SVB | SIB | SVC | SIC | SVI | SII | TV | TI]
此规则的示例如下所示:
/冷冻功能于良好状-test12345cv
我尝试使用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%',
)
),
以及SEGMENT:
'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]'
)
)
),
但它不起作用。谁能说出我做错了什么?谢谢!
答案 0 :(得分:0)
我会在这里Segment
。我在路由配置中注意到的唯一问题是sufix
约束:您应该键入[av|ai|…]
而不是(av|ai|…)
。
答案 1 :(得分:0)
请尝试这个 -
Public Sub UpdateTextBox(ByVal text As String)
RichTextBox2.AppendText(text & System.Environment.NewLine)
End Sub
在此行'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]'
)
)
),
你遇到了问题,因为它认为“slug-test”是单个变量。 所以为此,你应该将“-test”与“slug”变量分开。
'route' => '/:slug-test:id:sufix',