0

我收到以下错误:

在第 1233 行调用 C:\wamp\www\Code\application\libraries\DX_Auth.php 中未定义的方法 CI_Loader::plugin()

在这段代码上:

function captcha()
 {

    $this->ci->load->helper('url');


    $this->ci->load->plugin('dx_captcha');


    $captcha_dir = trim($this->ci->config->item('DX_captcha_path'), './');
4

5 回答 5

1

您使用的是哪个版本的 CI?自 2.x 以来,插件已被删除并替换为 helper。尝试改用reCaptcha,它有一个很好的库。

于 2012-06-17T18:44:55.793 回答
1

确保您已将 application/config/autoload.php 中的任何数组值从 $autoload['plugins'] 移动到 $autoload['helpers'] ,否则您会发现东西坏了。

这是参考

于 2012-06-17T18:15:00.720 回答
0

解决此问题的一种简单方法是,您只需将此代码放入您的loader.php. 该插件的作品。去System->Core->Loader.php

      /**
      * Load Plugin
       *
      * This function loads the specified plugin.
       *
     * @access      public
       * @param       array
      * @return      void
       */
     function plugin($plugins = array())
     {
              if ( ! is_array($plugins))
              {
                      $plugins = array($plugins);
             }

             foreach ($plugins as $plugin)
             {       
                      $plugin = strtolower(str_replace(EXT, '', str_replace('_pi', '', $plugin)).'_pi');              

                     if (isset($this->_ci_plugins[$plugin]))
                     {
                             continue;
                     }

                      if (file_exists(APPPATH.'plugins/'.$plugin.EXT))
                      {
                              include_once(APPPATH.'plugins/'.$plugin.EXT);   
                      }
                      else
                      {
                              if (file_exists(BASEPATH.'plugins/'.$plugin.EXT))
                              {
                                      include_once(BASEPATH.'plugins/'.$plugin.EXT);  
                              }
                              else
                              {
                                      show_error('Unable to load the requested file: plugins/'.$plugin.EXT);
                              }
                      }

                      $this->_ci_plugins[$plugin] = TRUE;
                      log_message('debug', 'Plugin loaded: '.$plugin);
              }               
      }

      // --------------------------------------------------------------------

      /**
       * Load Plugins
       *
       * This is simply an alias to the above function in case the
       * user has written the plural form of this function.
       *
       * @access      public
       * @param       array
       * @return      void
       */
      function plugins($plugins = array())
      {
              $this->plugin($plugins);
      }
于 2014-06-12T05:56:02.357 回答
0

我认为您正在尝试在新版本的 CodeIgniter 上使用旧版本的 DX_Auth。当前版本的 DX_Auth 与 CI 2.x 兼容,可在github上找到。

于 2012-06-17T19:01:33.533 回答
0

您正在尝试加载插件并且不支持插件,如果我记得自 CI 版本 2 以来正确的话。如果是这种情况(似乎是),您需要将插件转换为帮助程序。

于 2012-06-17T18:14:40.783 回答