Я пытаюсь вызвать библиотечную функцию с моего контроллера, но получаю ошибку
Исключение: вызов функции-члена items_upload () для null / usr / local / www/public_html / pos_clcdesq / application / controllers / Config. php 1022
Я думаю, что эта ошибка обычно означает, что у контроллера нет доступа к функции библиотеки, но, как вы можете видеть из моего конструктора, я загрузил библиотеку. Что мне здесь не хватает?
Конструктор контроллера:
public function __construct()
{
parent::__construct('config');
$this->load->library('barcode_lib');
$this->load->library('sale_lib');
$this->load->library('Clcdesq_integration_lib');
}
Функция контроллера initial_items_upload:
public function initial_items_upload()
{
$this->Clcdesq_integration_lib->items_upload();
}
Конструктор библиотеки и функция items_upload:
class Clcdesq_integration_lib
{
private $CI;
private $api_key;
private $api_url;
/**
* Constructor
*/
public function __construct($api_key = '')
{
$this->CI =& get_instance();
$this->api_key = $this->CI->encryption->decrypt($this->CI->Appconfig->get('clcdesq_api_key'));
$this->api_url = $this->CI->encryption->decrypt($this->CI->Appconfig->get('clcdesq_api_url'));
}
public function items_upload()
{
$all_items = json_decode(json_encode($this->CI->Item->get_all(), JSON_UNESCAPED_UNICODE), true);
foreach($all_items as $item)
{
$item_data[] = json_decode(json_encode($this->CI->Item->get_info($item['item_id']), JSON_UNESCAPED_UNICODE), true);
}
$pushdata = $this->populate_api_data($item_data);
if (version_compare(phpversion(), '7.1', '>='))
{
ini_set( 'precision', 17 );
ini_set( 'serialize_precision', -1 );
}
$json = json_encode($pushdata, JSON_UNESCAPED_UNICODE);
$clcdesq_guid = $this->send_data($this->api_url, $this->api_key, $json);
log_message("ERROR", "New Product JSON Results: $json");
log_message("ERROR", "API Results: $clcdesq_guid");
}
Я вызываю функцию из вида:
<div class="form-group form-group-sm">
<?php echo form_label($this->lang->line('config_clcdesq_utilities'), 'config_clcdesq_items_upload', array('class' => 'control-label col-xs-2')); ?>
<div class='col-xs-2'>
<div id="items_upload" class="btn btn-default btn-sm">
<span style="top:22%;"><?php echo $this->lang->line('config_clcdesq_items_upload'); ?></span>
</div>
</div>
</div>
$("#items_upload").click(function() {
window.location='<?php echo site_url('config/initial_items_upload') ?>';
});