0

データピッキングのためにコードイグナイターで tc_calender を使用しようとしています。

tc_calender.php と calendar_form.php をライブラリ フォルダーと autoload.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
4

1 に答える 1

0

tc_calendar::tc_calendar()tc_calendarクラスのコンストラクタです。autoload でコンストラクター引数を渡すことはできません。使用$this->load->library()すると、配列でなければならない単一の引数のみが許可されます。

これを機能させる 1 つの方法は、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'andを意味のあるものに置き換えDEFAULT、tc_calendar コンストラクターがそれらを使用する場合はさらに引数を追加する必要があります。

于 2013-06-07T14:47:25.367 に答える