我有一个使用 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/