我正在使用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
有关此错误的任何想法?
提前致谢
答案 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);