我尝试使用以下代码访问当前控制器和操作名称,它适用于控制器,但在操作名称(代码位置: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
属性。