【问题标题】:CodeIgniter: get_instance inside My_LangCodeIgniter:My_Lang 中的 get_instance
【发布时间】:2011-11-24 15:57:17
【问题描述】:

我发现了这个有用的国际化代码:

http://pastebin.com/SyKmPYTX

除了我无法在这个类中使用 CI 函数之外,一切都很好。

我想从 DB 中设置 $languages 和 $special 变量。

但是当我使用 $CI =& get_instance();在实例函数中显示以下错误:

致命错误:在第 231 行的 /system/core/CodeIgniter.php 中找不到类“CI_Controller”

【问题讨论】:

    标签: php class function codeigniter loader


    【解决方案1】:

    在 CodeIgniter 实例存在之前加载语言类,这就是您收到错误的原因。

    您可以使用post_controller_constructor 挂钩来设置您的变量。

    这是 CodeIgniter 论坛中的一个帖子,有人试图做类似的事情:http://codeigniter.com/forums/viewthread/108639/

    【讨论】:

      【解决方案2】:

      最简单的方法

      在 My_Lang.php 中

      var $languages = array();
      
      function __construct()
      {
      parent::__construct();
      
      require_once( BASEPATH .'database/DB'. EXT );
      $db =& DB();
      $query = $db->query( 'SELECT * FROM languages');
      $result = $query->result();
      
      foreach( $result as $row )
      {
      $this->languages[$row->short_name] = $row->full_name;
      }
      }
      

      我这样做并且工作正常 :)) 我还在 foreach 中添加了 default_uri

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-12
        • 1970-01-01
        • 2012-11-20
        • 1970-01-01
        • 2015-10-05
        • 2013-11-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多