0

我用的是 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
4

1 回答 1

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"
于 2013-06-13T14:21:00.133 回答