Yii2 在控制器中获取当前动作
Yii2 Get current action in controller
如何获取当前操作?
此代码:
if (!Yii::$app->controller->action->id == 'lang') {
Url::remember();
}
returns一个错误:
PHP Notice – yii\base\ErrorException
Trying to get property of non-object
您应该使用 beforeAction() 事件而不是 init()
。
你也可以简单地使用$this
因为它包含电流控制器。
public function beforeAction($action)
{
if (parent::beforeAction($action)) {
if ($this->action->id == 'lang') {
Url::remember();
}
return true; // or false if needed
} else {
return false;
}
}
您可以通过 :)
获取当前操作 ID
Yii::$app->controller->id;
如果在视图中使用 Yii2 - 试试这个:
$this->context->action->id;
您可以通过以下方式获取当前操作名称:
Yii::$app->controller->action->id
并用这个获取控制器名称:
Yii::$app->controller->id;
注意:请记住,这些仅在应用程序初始化后才有效。可能的用法:inside a controller action
/inside a model
或 inside a view
如何获取当前操作?
此代码:
if (!Yii::$app->controller->action->id == 'lang') {
Url::remember();
}
returns一个错误:
PHP Notice – yii\base\ErrorException
Trying to get property of non-object
您应该使用 beforeAction() 事件而不是 init()
。
你也可以简单地使用$this
因为它包含电流控制器。
public function beforeAction($action)
{
if (parent::beforeAction($action)) {
if ($this->action->id == 'lang') {
Url::remember();
}
return true; // or false if needed
} else {
return false;
}
}
您可以通过 :)
获取当前操作 ID Yii::$app->controller->id;
如果在视图中使用 Yii2 - 试试这个:
$this->context->action->id;
您可以通过以下方式获取当前操作名称:
Yii::$app->controller->action->id
并用这个获取控制器名称:
Yii::$app->controller->id;
注意:请记住,这些仅在应用程序初始化后才有效。可能的用法:inside a controller action
/inside a model
或 inside a view