我怎样才能获得当前行动?
这段代码:
if (!Yii::$app->controller->action->id == 'lang') {
Url::remember();
}
Run Code Online (Sandbox Code Playgroud)
返回错误:
PHP注意 - yii\base\ErrorException
试图获得非对象的属性
aro*_*hev 11
您应该使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式获取当前操作名称:
Yii::$app->controller->action->id
Run Code Online (Sandbox Code Playgroud)
并使用以下命令获取控制器名称:
Yii::$app->controller->id;
Run Code Online (Sandbox Code Playgroud)
注意:请记住,这些仅在应用程序初始化后才起作用。可能的用途:inside a controller action/inside a model或inside a view
| 归档时间: |
|
| 查看次数: |
23232 次 |
| 最近记录: |