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 に答える