为什么Codeigniter显示错误“tc_calendar :: tc_calendar()缺少参数1”

时间:2013-06-07 08:41:48

标签: codeigniter calendar datepicker

我一直在尝试在我的codeigniter中使用tc_calender进行数据检索。

我已经存储了tc_calender.php& library文件夹和autoload.php中的calendar_form.php提到:

$autoload['libraries'] = array('database','tc_calendar');

还包括以下工作正常:

<?php define('TLOGICURL', base_url()); ?>
<script src="<?php echo TLOGICURL;?>assets/js/calendar.js"></script>
<link href="<?php echo TLOGICURL;?>assets/css/calendar.css" rel="stylesheet">

但它显示以下错误:

A PHP Error was encountered
Severity: Warning
Message: Missing argument 1 for tc_calendar::tc_calendar(), called in D:\xampp\htdocs\tlogic\system\core\Loader.php on line 1099 and defined
Filename: libraries/tc_calendar.php
Line Number: 101

and

A PHP Error was encountered
Severity: Notice
Message: Undefined variable: objname
Filename: libraries/tc_calendar.php
Line Number: 102

1 个答案:

答案 0 :(得分:0)

tc_calendar::tc_calendar()tc_calendar类的构造函数。您不能在autoload中传递构造函数参数,并且使用$this->load->library()只允许一个必须是数组的参数。

使这项工作的一种方法是创建tc_calendar的子类并加载它。

<?php
include_once 'tc_calendar.php';
class my_calendar extends tc_calendar {
  public function __construct(array $config = array()) {
    $arg = array_key_exists('argname', $config) ? $config['argname'] : DEFAULT;
    base::tc_calendar($arg);
  }
}

然后您可以自动加载,也可以使用其他参数手动加载:

$this->load->library('my_calendar', array('argument'));

你应该用有意义的东西替换'argname'DEFAULT,如果tc_calendar构造函数使用它们,可能会添加更多的参数。