2012-03-06 12 views
10

Deseo obtener el nombre del controlador actual que maneja la acción actual. pero en mi caso Buscaré el controlador actual en mi main.php en mis archivos de diseño.Obteniendo la ID del controlador actual en Yii

esta es mi pequeña vista de mi estructura de directorios para darle una idea de dónde está mis archivos de diseño y el archivo de donde voy a poner mis códigos en la búsqueda de mi nombre de controlador

  • /protegida
  • /temas
    • /mylayout
      • /layouts
        • main.php
        • column1.php
        • column2.php
      • /sitio
        • index.php

¿Esto es posible? im tratando los siguientes códigos, pero no pude conseguir mi nombre de controlador de corriente ...

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

gracias

Respuesta

7

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

esto mostrará controlador de corriente

13

ID de controlador:

$this->id 

Aquí $ esto se refiere al controlador.

Y Para conseguir la acción Identificación:

$this->action->id 
+0

gracias por ayuda, pero. Buscaré el controlador actual en mi main.php en mis archivos de diseño ... ¿es eso posible? –

+0

Sí, es posible. –

26

gusta esta

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

o

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

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

+2

Prefiero su respuesta, porque su respuesta funciona en cualquier lugar, vistas, widgets, extensiones, etc. E.G. en caso de llamar a CGridView, $ se refiere a sus widgets y $ this-> id da como resultado el nombre del widget y no el nombre del controlador. – HPM

3

Usted no está realmente obligado a utilizar la función estática. Siempre que esté en una vista (o plantilla) puede usar echo $this->getUniqueId(); para obtener la ID del controlador único.

Cuestiones relacionadas