如何获取控制器和动作名称?调用时显示错误


in yii how to get controller and action name ? showing error while calling from

我尝试使用以下代码访问当前控制器和操作名称,它适用于控制器,但在操作名称(代码位置:protected/components/controller.php)的情况下失败

class Controller extends CController
{
    public $layout='//layouts/column1';
    public $menu=array();
    public $breadcrumbs=array();
        public function init()
        {
           echo Yii::app()->controller->id; // working fine
          echo Yii::app()->controller->action->id; exit; // showing error ![enter image description here][1]
        }
}

Use -

protected function beforeAction($event) {
    echo Yii::app()->controller->id;
    echo Yii::app()->controller->action->id;
    exit;
}

而不是

public function init() {
    echo Yii::app()->controller->id;
    echo Yii::app()->controller->action->id;
    exit;
}

init()中,当控制器初始化时运行,但动作还不知道,因此对象没有与之关联的action属性。