0

もともとKohana3では、次のようにURLを介してコントローラーアクションの引数/パラメーターを渡すことができました。

http:/website/controller/actionname/param1/param2/.../paramX

次のようにアクションを定義するだけで処理できます。

public action_actionname($params)
{
   $params_array = explode("/", $params); 
   //you can now use $params_array[0], $params_array[1], ...
}

現在、v3.1以降、この機能を廃止することを決定したようです(ここにリンクがあります)。v3.2では削除する必要があります。

そして、代わりにRoute :: Set( )メソッドとrequest-> param()メソッドを使用することを望んでいるようです。これは、コントローラーでメソッド/アクションを定義するたびに、アプリケーション内の別の場所で引数ごとに個別のルーティングを定義する必要があることを意味しますか?誰かがこれがどのように機能するかを簡単な言葉で私に説明できますか?単に関数を呼び出すためにこれらすべてを行うのは、多くの不必要な「面倒」のように思えます。

4

1 に答える 1

3

おそらく、ルートで正規表現パラメーターを使用して、デフォルトのマッチング動作をオーバーライドすることを検討する必要があります...私は通常、これを使用して、1 つの KO3「パラメーター」で複数の URL パラメーターをキャプチャします。例:

Route::set('route1', '<controller>/<action>(/<param_list>)', array('param_list'=>'.*'))
->defaults(array(
    'controller'   => 'my_default_controller',
    'action'       => 'my_default_index'
));

コントローラーで$this->request->param("param_list")は、正規表現に一致するものは何でも等しくなります.*。つまり、スラッシュなどを使用して、希望どおりに残りの URL を取得できます。

于 2011-03-31T22:05:23.630 に答える