【问题标题】:Getting Current Controller ID in Yii在 Yii 中获取当前控制器 ID
【发布时间】:2012-03-23 20:16:57
【问题描述】:

我想获取处理当前操作的当前控制器名称。 但在我的情况下 我将在我的布局文件中的 main.php 中查找当前控制器

这是我的目录结构的小视图,让您了解我的布局文件在哪里以及我将在其中放置代码以搜索我的控制器名称的文件

  • /受保护
  • /主题
    • /mylayout
      • /布局
        • ma​​in.php
        • column1.php
        • column2.php
      • /网站
        • index.php

这可能吗?我正在尝试以下代码,但我无法获得我当前的控制器名称...

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

谢谢

【问题讨论】:

    标签: php templates yii yii-components


    【解决方案1】:

    像这样

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

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

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

    【讨论】:

    • 我更喜欢你的答案,因为你的答案适用于任何地方,视图、小部件、扩展等。在调用 CGridView 的情况下,$this 指的是它的小部件,$this->id 产生小部件名称而不是控制器名称。
    【解决方案2】:

    控制器 ID:

    $this->id
    

    这里的 $this 指的是控制器。

    并且 获取操作 ID:

    $this->action->id
    

    【讨论】:

    • 感谢您的帮助。我将在我的布局文件中的 main.php 中查找当前控制器……这可能吗?
    【解决方案3】:

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

    这将显示当前控制器

    【讨论】:

      【解决方案4】:

      您实际上并不需要使用静态函数。无论何时在视图(或模板)中,您都可以使用 echo $this->getUniqueId(); 来获取唯一的控制器 ID。

      【讨论】:

        【解决方案5】:

        Yii2:

        Yii::$app->controller->id

        (文档:ApplicationController

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-19
          • 1970-01-01
          • 1970-01-01
          • 2023-03-21
          • 1970-01-01
          • 2020-06-11
          • 2014-12-24
          • 1970-01-01
          相关资源
          最近更新 更多