无法在codeigniter中加载请求的类:消息

时间:2012-04-11 08:45:40

标签: php codeigniter

我正在使用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放在我的application / libraries文件夹中 但我收到以下错误

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

有关此错误的任何想法?

提前致谢

1 个答案:

答案 0 :(得分: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);