我一直在尝试在我的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
答案 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构造函数使用它们,可能会添加更多的参数。