Yii2で現在のコントローラとアクション名を取得する方法


Yii2フレームワークでは、現在のリクエストのコントローラとアクション名を取得するためのいくつかの方法があります。以下にいくつかの方法とコード例を示します。

  1. \Yii::$app->controllerと\Yii::$app->controller->actionを使用する方法: この方法では、Yii::$app->controllerを使用して現在のコントローラオブジェクトにアクセスし、->actionを使用して現在のアクションオブジェクトにアクセスします。以下は例です:
$controller = \Yii::$app->controller;
$action = $controller->action;
$controllerName = $controller->id; // コントローラ名
$actionName = $action->id; // アクション名
  1. Yii::$app->requestedRouteを使用する方法: この方法では、Yii::$app->requestedRouteを使用して現在のルートを取得し、それを解析してコントローラとアクション名を抽出します。以下は例です:
$route = Yii::$app->requestedRoute;
[$controllerName, $actionName] = Yii::$app->createController($route);
  1. \Yii::$app->requestedActionを使用する方法: この方法では、Yii::$app->requestedActionを使用して現在のリクエストに関連付けられたアクションオブジェクトにアクセスします。以下は例です:
$action = \Yii::$app->requestedAction;
$actionName = $action->id; // アクション名
$controllerName = $action->controller->id; // コントローラ名

これらの方法のいずれかを使用して、現在のコントローラとアクション名を取得できます。選ぶ方法はあなたの好みによるものです。