コハナ2では、次のような情報を簡単に取得できます。
echo router::$controller;
echo router::$method;
echo router::$arguments[0-x];
それがコハナ3でどのように機能するかについて何か考えはありますか?
前もって感謝します!
コントローラの内部から:
_$this->request->controller
_
_$this->request->action
_
$this->request->param('paramname')
K2とは異なり、K3の引数には、ルートで定義したkayを介してアクセスします。
このURLを例にとってみましょう:
_Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array('controller' => 'welcome', 'action' => 'index'));
_
「id」引数にアクセスするには、
$this->request->param('id')
Param()メソッドからコントローラー/アクション引数にアクセスすることはできません。
Request::instance()
を使用して、グローバル(または「マスター」)リクエストインスタンスを取得することもできます。
詳細については、 K3ガイド を参照してください。
ユーザーガイド からKohana 3.2の回答を更新しました:
// From within a controller:
$this->request->action();
$this->request->controller();
$this->request->directory();
// Can be used anywhere:
Request::current()->action();
Request::current()->controller();
Request::current()->directory();
Kohana> = 3.1を使用している場合は、Requestオブジェクトの一部のプロパティがメソッドに変換されていることに注意してください。
例えば。 _Request::controller
_はRequest::controller()
(またはコントローラー内にいる場合は$this->request->controller()
)になりました。
詳細については、 http://kohanaframework.org/3.1/guide/kohana/upgrading のKohanaアップグレードガイドを参照してください。