我使用Kohana 3.3 请帮助我,一个实现Clean URL的路由示例。
site.ru/param1/param2/param3/.../paramN/id
我们有一个未知数量的参数,但后者总是值得'id' 也就是说,有不同的变体:
site.ru/param1/param2/param3/.../paramN/id
site.ru/param1/id
site.ru/id
答案 0 :(得分:0)
很好的小蚱蜢,在这里你可以玩一些东西:
以下路线将采用任意数量的parameters
(0..n)。 <id>
代表一个数字:
Route::set('testparams', 'account(/<params>)/<id>',
array(
'params' => '.+',
'id' => '\d+'))
->defaults(array(
'controller' => 'account',
'action' => 'test',
));
控制器account
和方法test
是这样的:
class Controller_Account extends Controller {
public function action_test()
{
$params = $this->request->param();
echo Debug::vars($params);
$id = $this->request->param('id');
echo Debug::vars($id);
exit;
}
}
测试1:
http://localhost//account/p1/p2/p3/p4/p5/500
// result:
array(2) (
"params" => string(14) "p1/p2/p3/p4/p5"
"id" => string(3) "500"
)
string(3) "500"
测试2:
http://localhost/account/500
// result:
array(2) (
"params" => string(0) ""
"id" => string(3) "500"
)
string(3) "500"