2

パラメーター化されたルートを使用するときに、イベント ハンドラーで書き換えられた$_GET変数にアクセスする方法はありますか?onBeginRequest

私のルートは次のように定義されています。

'<_c:\w+>/<_a:\w+>/<id:\d+>' => '<_c>/<_a>'

そして、私のイベントハンドラーは次のとおりです。

'onBeginRequest' => function($event) {
    /*
    site.com/posts/edit/1 - empty (bad)
    site.com/posts/edit/?id=1 - not empty(good)         
    */
    var_dump($_GET);
    die;
}

上記の 2 つの URL のどちらが要求されても、$_GET['id'] が定義されていることを確認するにはどうすればよいですか?

Yii バージョン 1.1.13 を使用しています。

4

1 に答える 1

3

これを行うには、URL マネージャー コンポーネントに現在のリクエスト URL を解析させます。

$app = Yii::app();
$app->getUrlManager()->parseUrl($app->getRequest());

これは、ルートに従って適切に入力$_GETされます。$_REQUESTまた、アクティブなルート (コントローラー/アクションのペア) も返しますが、ここでは必要ないように見えるため、戻り値については何もしていません。

于 2013-07-24T11:19:49.337 に答える