2012-03-06 84 views
10

我想獲取處理當前操作的當前控制器名稱。 但在我的情況下我會在我的佈局文件的main.php中查找當前控制器。Yii獲取當前控制器ID

這是我的我的目錄結構的小圖,給你一個想法,哪裏是我的佈局文件和在那裏,我把我的代碼在我的控制器名稱的搜索

  • /保護
  • 文件
  • /主題
    • /mylayout
      • /佈局
        • main.php
        • column1.php
        • column2.php
      • /網站
        • 的index.php

這可能嗎?我嘗試下面的代碼,但我沒有得到我的電流控制器名稱...

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

感謝

回答

7

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

這將顯示電流控制器

13

控制器ID:

$this->id 

這裏$這是指控制器。

而且 爲了得到活動ID:

$this->action->id 
+0

感謝您的幫助,但。我會在我的佈局文件中查找main.php中的當前控制器...可能嗎? – 2012-03-06 11:03:51

+0

是的,這是可能的。 – 2012-03-06 11:08:55

26

像這樣

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

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

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

+2

我更喜歡你的答案,因爲你的答案適用於任何地方,視圖,小部件,擴展等。在調用CGridView的情況下,$ this引用它的小部件,$ this-> id導致小部件名稱而不是控制器名稱。 – HPM 2013-04-21 11:19:32

3

你實際上並不需要使用靜態函數。無論何時在視圖(或模板)中,您都可以使用echo $this->getUniqueId();來獲取唯一的控制器ID。