php - 带有 Highcharts 的 codeigniter - 数据不来控制器查看
问题描述
我试图将 highcharts 库添加到我的 CI 项目中。所以我在我的控制器中尝试了数据库查询
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class ChartController extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->database();
}
public function index()
{
$query = $this->db->query("SELECT SUM(numberofclick) as count FROM demo_click
GROUP BY YEAR(created_at) ORDER BY created_at");
$data['click'] = json_encode(array_column($query->result(), 'count'),JSON_NUMERIC_CHECK);
$query = $this->db->query("SELECT SUM(numberofview) as count FROM demo_viewer
GROUP BY YEAR(created_at) ORDER BY created_at");
$data['viewer'] = json_encode(array_column($query->result(), 'count'),JSON_NUMERIC_CHECK);
$this->load->view('my_chart', $data);
}
}
然后我尝试通过视图访问。我放置了以下代码来检查控制器的输出。
<?php
echo var_dump($this->_ci_cached_vars);
?>
然后我得到了,没有值的输出。问题是什么?
array (size=2)
'click' => string '[]' (length=2)
'viewer' => string '[]' (length=2)
解决方案
可能发生这种情况是因为您返回的是一组对象而不是数组。由于array_column()
期望第一个参数是数组,因此尝试更改$query->result()
为$query->result_array()
on each $data
:
public function index()
{
$query = $this->db->query("SELECT SUM(numberofclick) as count FROM demo_click
GROUP BY YEAR(created_at) ORDER BY created_at");
$data['click'] = json_encode(array_column($query->result_array(), 'count'),JSON_NUMERIC_CHECK);
$query = $this->db->query("SELECT SUM(numberofview) as count FROM demo_viewer
GROUP BY YEAR(created_at) ORDER BY created_at");
$data['viewer'] = json_encode(array_column($query->result_array(), 'count'),JSON_NUMERIC_CHECK);
$this->load->view('my_chart', $data);
}
推荐阅读
- java - 在 Java 11 和现代 iMac 上使用 Swing Java2D
- java - 为什么 flatMap 不平整 Stream
> 到 SomeClass 而不是 Stream ? - excel - 我在向图表中添加另一个系列时遇到问题
- python - Python:将顶行的标题附加到 CSV 文件
- node.js - 具有重用连接能力的 Typescript Mongodb 原生驱动连接
- c++ - XCode:比较错误“二进制表达式的操作数无效('const class'和'const class')
- java - org.hibernate.tool.schema.spi.CommandAcceptanceException:执行 DDL“CREATE FUNCTION”时出错
- javascript - 插入输入字段时,Vuelidate 不会更新“必需”验证器
- python - Tqdm 进度条仅在 ProcessPoolExecutor 进程结束后显示
- django - 使用 nginx 和 gunicorn 通过 AWS 托管网站时无法读取 Django 应用程序文件