0

Kohana3フレームワークのコントローラー内にアクションがあり、すべて正常に動作します。

myconroller/myaction/5ブラウザにURLを入力すると、適切なURLに移動し、次のようaction_myaction()にパラメータ5にアクセスできます。$this->request->param('id);

私の質問はmyconroller/myaction-XXX/5: (XXXは1から999までの任意の数)のように見えるすべてのURLをキャッチし て移動する方法はaction_myaction()

このようなタイプのURLが複数ある場合は、パラメーターとしてXXXを渡すことにより、関数を呼び出すいくつかのアクションを作成します。しかし、最大999の有効なURLがある場合はどうなりますか?

bootstrap.phpを適切な方法で変更する必要がありますか?どのように?または、別のオプションがありますか(存在する場合)?

4

1 に答える 1

1

これが私の質問に対する答えです。bootstrap.phpデフォルトルートの前にルートのルールを追加します。

Route::set('xxxroute', 'myconroller/myaction-<param1>/<id>'
array(
    'param1' =>'\d+',
    'id' =>'\d+'
))
->defaults(array(
    'controller' =>'myconroller',
    'action' =>'myaction',
));

この方法param1は数値であり(それ以外の場合はデフォルトルートに移動します)、アクションに直接移動しますmyaction

パラメータは、次の場所で見つけることができます。

$id=$this->request->param('id');
$param1=$this->request->param('param1');

これが他の誰かに役立つことを願っています。

于 2012-12-15T18:36:46.083 に答える