例如:
mysite.com/questions/test/1
我想知道它是否真的包含一个字符串test
,其id在此示例中为1
。
请注意。它不是一个标准的控制器vs动作和id。我必须检查一下并为此设置路线(controller
与action
)。
添加。原因是此部分mysite.com/["questions/"]test/1
可以包含任意数量的字词,例如mysite.com/a/b/c/d/test/1
,但网址的结尾始终为test/(id)
。
答案 0 :(得分:2)
您可以修改路径的每个部分的正则表达式,从而允许额外的/
。您的路线可能如下所示:
Route::set('test', '<question>/test/<id>',
array(
'question' => '[^.,;?\n]+',
'id' => '\d+',
))
->defaults(array(
'controller' => 'Test',
'action' => 'index',
));
<...>
evaluates to [^/.,;?\n]++
- 所以删除斜线(因为你想允许它)和额外的加号,你就有了你想要的那个。
现在将捕获URI /foo/bar/hello/test/5
,您将获得参数
Array
(
[question] => foo/bar/hello
[id] => 5
)
访问