php - 在哪里为 Angular-Codeigniter 项目中的图形创建数组

标签 php angularjs codeigniter

我有一个使用 Angular 和 Codeigniter 的项目。我有一个使用数组作为输入的图表。我使用以下代码在 Codeigniter Controller 中构建数组:

function get_graph_data()
{
    $project_id = $this->site_settings->get_decrypt_id($this->input->post('project_id'));
    $year = ($this->input->post('year') ? $this->input->post('year') : date('Y'));
    $result = $this->Income_expense_model->get_graph_data($project_id, $year);
    for ($i = 1; $i <= 12; $i++) {
        $dummy_date = strtotime("1991-" . $i . "-13");
        $month_name = date('F', $dummy_date);
        $array['months'][$i] = $month_name;
        $array['income'][$i] = "0";
        $array['expense'][$i] = "0";
    }

    foreach($result as $row) {
        if ($row->type == 1) $array['income'][$row->month_num] = $row->amount;
        else $array['expense'][$row->month_num] = $row->amount;
    }

    $data['months'] = array_values($array['months']);
    $data['income'] = array_values($array['income']);
    $data['expense'] = array_values($array['expense']);
    echo json_encode($data);
}

我使用服务从我的Angular Controller 获取该数组并在那里使用它。
我做的事正确吗? 我应该在哪里构建数组?
1.像我一样在 Codeigniter Controller 中

2.通过获取
$result = $this->Income_expense_model->get_graph_data($project_id, $year);
不是从 Codeigniter Controller 格式化的数组并在 Angular Controller 中构建它?
或者其他什么?

最佳答案

这要看情况。

您的问题是:数据应该在哪里格式化,服务器端(Codeigniter)还是客户端(Angular)?

对于服务器端,有时您可能会从模型中获取太多信息,您可能不希望从此 API 公开太多信息(例如:用户信息), 因此您可以在响应之前在服务器端删除它们。

对于客户端来说,有时服务器端的响应数据结构可能不符合你的要求,所以你可以在客户端重新格式化数据。

关于php - 在哪里为 Angular-Codeigniter 项目中的图形创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40669072/

相关文章:

php - 如何从图像中获取特定颜色范围的位置?

php - (bool)true var 在数组赋值时不会转换为数组,但 (bool)false 会。为什么?

php - 寻找有关如何使用 PHP 构建私有(private)消息系统的教程

php - 在一个域上拥有两个不同的 php 框架

PHP (ZLIB) 解压缩 C (ZLIB) 压缩数组会返回乱码

javascript - 使用 reactjs 进行电子邮件 otp 验证

javascript - 我可以用 ng-if 调用函数吗?

javascript - Angular subview

php - CodeIgniter session set-cookie duplicated -- 如何解决

mysql - 多个文本框未保存数据 codeigniter