У меня есть личная переменная в codeigniter, например:
private $table = 'phone';
private $column_order = array(null, 'name', 'price');
private $type = array('type');
private $battery_consumption = array('battery_consumption');
И я хочу использовать свою переменную в своей частной модели:
private get_data_query(){
$this->db->select($this->column_order);
$this->db->select_sum($this->battery_consumption);
$this->db->from($this->table);
$this->db->group_by($this->type);
}
И затем я вызываю эту частную функцию в свой Функция publi c для извлечения моих данных из таблицы:
function get_datatables(){
$this->_get_data_query();
if($_POST['length'] != -1)
$this->db->limit($_POST['length'], $_POST['start']);
$query = $this->db->get();
return $query->result();
}
function count_filtered()
{
$this->_get_data_query();
$query = $this->db->get();
return $query->num_rows();
}
public function count_all()
{
$this->db->from($this->table);
return $this->db->count_all_results();
}
В контроллере:
public function get_data_phone()
{
$list = $this->m_phone->get_datatables();
$data = array();
$no = $_POST['start'];
foreach ($list as $field) {
$row[] = $no;
$row[] = $field->name;
$row[] = $field->type;
$row[] = $field->price;
$row[] = $field->battery_consumption;
$data[] = $row;
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->m_request->count_all(),
"recordsFiltered" => $this->m_request->count_filtered(),
"data" => $data,
);
echo json_encode($output);
}
В представлении:
<div class="card-block">
<div class="dt-responsive table-responsive">
<table id="phone" class="ui celled table" style="width:100%">
<thead>
<tr>
<th>No</th>
<th>Phone Name</th>
<th>Phone Type</th>
<th>Phone Price</th>
<th>Battery Health</th>
</tr>
</thead>
</table>
</div>
</div>
Запрос данных:
let table;
$(document).ready(function() {
phone_data();
function phone_data() {
table = $('#phone').DataTable({
"processing": true,
"serverSide": true,
"order": [],
"ajax": {
"url": "<?= site_url('phone/get_data_phone') ?>",
"type": "POST",
},
"columnDefs": [{
"targets": [0],
"orderable": false,
}, ],
});
}
});
Но My Query в модели все еще выдает ошибку при использовании select_sum (), что мне делать?