Использование HIghcharts на Codeigniter для получения имени и итога - PullRequest
0 голосов
/ 27 сентября 2018

Я просто застрял в своем коде, и я не могу продолжить свою программу, может кто-нибудь помочь мне, пожалуйста, сломать мою стену, и я могу продолжить свой код.я использую старшие чарты на 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";
         }
      ?>

       ]
  }]

это моя ошибка: код сообщения об ошибке

, поэтому я хочу показать имя и сумму на круговой диаграмме.Я надеюсь, что кто-то может помочь мне проверить мой код и исправить его.Спасибо.

1 Ответ

0 голосов
/ 27 сентября 2018

В 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 массив, который был передан из контроллера)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...