Kohana清洁URL路由(包含多个段)

时间:2013-06-13 13:26:41

标签: php routing kohana clean-urls

我使用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

1 个答案:

答案 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"