2012-03-06 2 views
10

Desidero ottenere il nome del controller corrente che gestisce l'azione corrente. ma nel mio caso cercherò il controller corrente nel mio main.php nei miei file di layout.Ottenere l'ID del controller corrente in Yii

questa è la mia piccola vista la mia struttura di directory per darvi un idea di dove è il mio file di layout e il file in cui io metterò le mie codici nella ricerca del mio nome del controller

  • /protetto
  • /temi
    • /mylayout
      • /layout
        • main.php
        • column1.php
        • column2.php
      • /
      • sito
        • index.php

È possibile? im cercando i seguenti codici, ma non sono riuscito a ottenere il mio nome regolatore di corrente ...

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

grazie

risposta

7

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

questo mostrerà regolatore di corrente

13

controller Id:

$this->id 

Qui $ questo si riferisce al controller.

E Per ottenere un'azione ID:

$this->action->id 
+0

grazie per aiuto, ma. Cercherò il controller corrente nel mio main.php nei miei file di layout ... è possibile? –

+0

Sì, è possibile. –

26

Ti piace questa

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

o

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

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

+2

Preferisco la tua risposta, perché la tua risposta funziona dove, viste, widget, estensioni, ecc. E.G. in caso di chiamata a CGridView, $ si riferisce ai suoi widget e $ this-> id risulta nel nome del widget e non nel nome del controller. – HPM

3

Non sta effettivamente richiesto di utilizzare la funzione statica. Ogni volta che in una vista (o modello) è possibile utilizzare echo $this->getUniqueId(); per ottenere l'ID del controller univoco.