【问题标题】:Unable to load the requested class: message in codeigniter无法加载请求的类:codeigniter 中的消息
【发布时间】:2012-04-11 08:45:39
【问题描述】:

我正在使用 Codeigniter 消息库。

在我的控制器中,我有以下代码

public function __construct() {
    parent::__construct();
    $this->load->library('message');  
}

public function box($box_id=null, $language_name=null) {
   if($id_from_url[5]==null){
      $this->message->set('Please provide Box ID in URL.', 'error');
    }
}

在我看来,我使用

    $this->message->display(); 

我已经将 Message.php 放在我的应用程序/库文件夹中 但我收到以下错误

Message: Missing argument 1 for CI_Message::CI_Message(), called in W:\Zend\Apache2\htdocs\mediabox\system\core\Loader.php on line 1099 and defined

关于这个错误的任何想法?

提前致谢

【问题讨论】:

  • 我认为我们在这里遗漏了重要的代码。
  • 如果是这个消息库 (codeigniter.com/wiki/Message) 则确保库类具有 __construct 函数(因为所有类都应具有 CI2)
  • @Rooneyl 我没有得到你的答案
  • 是的,我正在使用这个库
  • 以及该 __construct 函数中应包含的内容

标签: php codeigniter


【解决方案1】:

您的标题与您在此处遇到的错误完全不同。它明确指出 Message 库需要将参数传递给其构造,但您正在加载库而没有任何构造参数。

您需要在加载时使用第二个参数传递构造参数

$this->load->library('message',$config);

如果你真的在这里http://codeigniter.com/wiki/Message 谈论这个消息库,那么我必须说,那里的文档不完整。

function CI_Message($config){    
    $this->CI =& get_instance();        
    $this->CI->load->library('session');

    if($this->CI->session->flashdata('_messages')) $this->messages = $this->CI->session->flashdata('_messages');
    if(isset($config['wrapper'])) $this->wrapper = $config['wrapper'];
}

这里的构造需要一个参数$config传递给它。

彻底检查文档。您需要在加载时传递它。

$config = array();
$config['wrapper'] = array('<div id="messages">', '</div>'); 

然后

$this->load->library('message',$config);

【讨论】:

  • 它说未定义的变量 $config
  • 我已经更新了我上面的代码..你需要先初始化$config
  • 我应该在控制器还是 Message 类中初始化我的配置数组和 config[wrapper] ?
  • 在你的控制器中,在加载消息库之前
  • 现在在遇到 if 条件时给出内部服务器错误 500
猜你喜欢
  • 2011-12-23
  • 2013-05-14
  • 1970-01-01
  • 2015-05-18
  • 1970-01-01
  • 2017-08-01
  • 1970-01-01
  • 2012-05-25
  • 2018-07-20
相关资源
最近更新 更多