Chart.js图形返回为undefined

时间:2017-11-07 14:32:47

标签: php chart.js

我正在使用chart.js创建图形。标签工作正常,图形必须显示类型和数量。数量正确返回,但类型(名称)显示为未定义,它们是浅灰色,而不是我选择的颜色。

my graphic

数组正确返回(var_dump($ array)返回正确的名称和值)。我不知道还有什么问题。以下是我的代码的一些部分,如果有人可以帮助我。

home.php

<div class="db-row row2">
   <div class="grid-1">
    <div class="db-info">
        <div class="db-info-title">Tipos de imóveis disponíveis para venda</div>
        <div class="db-info-body" style="height: 300px">
             <canvas id="rel2"></canvas>
           </div>
    </div>
</div>

控制器

public function index() {
    $data = array();
    $user = new Users();
    $user->setLoggedUser();//captura as info do usuario logado
    $company = new Companies($user->getCompany());//define a empresa (id) do usuario logado
    $data['company_name'] = $company->getName();//define o nome da empresa do usuario logado
    $data['user_email'] = $user->getEmail();//define o email ddo usuario logado

    $i = new Inventory();

    $data['statuses'] = array(
        '0'=>'Casa',
        '1'=>'Condomínio',
        '2'=>'Apartamento',
        '3'=>'Cobertura',
        '4'=>'Loja'
    );

    //imoveis vendidos nos ultimos 30 dias
    $data['products_sold'] = $i->getSoldProducts(date('Y-m-d', strtotime('-30 days')), date('Y-m-d'),$user->getCompany()); 
    //valor imoveis vendidos ultimos 30 dias 
    $data['revenue']       = $i->getTotalRevenue(date('Y-m-d', strtotime('-30 days')), date('Y-m-d'),$user->getCompany()); 
    //grafico status        
    $data['status_list']   = $i->getTypeList($user->getCompany());


     $this->loadTemplate('home', $data);
}

模型

 public function getTypeList($id_company){
    $array = array('0'=>0, '1'=>0, '2'=>0, '3'=>0, '4'=>0);
    $sql = "SELECT COUNT(id) as total, type "
            . "FROM inventory "
            . "WHERE del IS NULL AND (is_sold IS NULL OR is_sold = '') "
            . "AND id_company = :id_company "
            . "GROUP BY type "
            . "ORDER BY type ASC";
    $sql = $this->db->prepare($sql);
    $sql->bindValue(':id_company', $id_company);
    $sql->execute();

   if($sql->rowCount() > 0){
        $rows = $sql->fetchAll();
        foreach ($rows as $sale_item){
            $array[$sale_item['type']] = $sale_item['total'];
        }
    }              
    return $array;
}

JS

var rel2 = new Chart(document.getElementById("rel2"), {
type:'pie',
data:{
    labels:status_name_list,
    datasets: [{
        data:status_list,
        backgroundColor:['#0000FF','#32CD32','#FF0000', '#CCFF33', '#663300']
    }]
  }

});  

0 个答案:

没有答案