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