0

我正在使用 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

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

提前致谢

4

1 回答 1

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);
于 2012-04-11T09:09:20.020 回答