Getting Current Controller ID in Yii

2019-01-25 10:14发布

问题:

I want to get the current controller name that handles the current action. but the in my case I will look for the current controller in my main.php in my layout files.

this is my small view of my directory structure to give you an idea where is my layout files and the file where i will put my codes in searching of my controller name

  • /protected
  • /themes
    • /mylayout
      • /layouts
        • main.php
        • column1.php
        • column2.php
      • /site
        • index.php

Is this possible? im trying the following codes but i failed to get my current controller name...

echo Yii::app()->controller->getId;
echo Yii:app()->getController->id;
echo Yii:app()->controller->uniqueID;

thanks

回答1:

<?php echo $this->getUniqueId();?>

this will show current controller



回答2:

Like this

Yii::app()->controller->id

or

Yii::app()->getController()->getId()

http://www.yiiframework.com/doc/api/1.1/CApplication#getController-detail



回答3:

Controller Id :

$this->id

Here $this refers to controller.

And For getting action id :

$this->action->id


回答4:

You're not actually required to use the static function. Whenever in a view( or template) you can use echo $this->getUniqueId(); to get the unique controller ID.



回答5:

Yii2:

Yii::$app->controller->id

(Documentation: Application and Controller)