Я просто застрял в своем коде, и я не могу продолжить свою программу, может ли кто-нибудь помочь мне, пожалуйста, сломать мою стену, и я могу продолжить свой код. Я использую highcharts на codeigniter, и это мой код:
Контроллер:
public function index()
{
$chart=$this->Model_mou->get_data();
$this->load->view('mou', $chart);
}
Модель:
function get_data()
{
$this->db->select('dn_ln as name, count(dn_ln) as total');
$this->db->from('mou');
$this->db->group_by('dn_ln');
$query = $this->db->get();
return $query->result();
}
Вид :
series: [{
name: 'Precentage',
colorByPoint: true,
data: [
<?php
foreach ($chart as $x) {
echo "['" .$x->name . "'," . $x->total ."],\n";
}
?>
]
}]
это моя ошибка: код сообщения об ошибке
поэтому я хочу показать имя и общую сумму на круговой диаграмме. Я надеюсь, что кто-то там может помочь мне проверить мой код и исправить его. Спасибо.






В Codeigniter представление ожидает получить данные от контроллера в виде массива. Внутри представления вы получаете доступ непосредственно к элементу массива, а не к самому массиву.
Итак, если вы передаете $chart в представление, а $chart содержит $name и $total, вы называете их.
Вы можете немного «взломать» поведение контроллера (чтобы вы все еще могли использовать $chart в представлении), поместив $chart внутри массива, который затем передается в представление. Попробуй это:
public function index()
{
$chart=$this->Model_mou->get_data();
$viewdata = array(
'chart' => $chart,
);
$this->load->view('mou', $viewdata);
}
Сделав это небольшое изменение в вашем контроллере, ваше представление начнет работать так, как вы ожидаете (поскольку он возьмет элемент $chart, который сам является массивом, из массива $viewdata, который был передан с контроллера)