#cakephp #charts #cakephp-3.0
Вопрос:
Я хотел бы спросить, как динамически отображать диаграммы на html-странице view.ctp
образец диаграммы это ссылка на образец диаграммы http://gionkunz.github.io/chartist-js/
на странице контроллера я узнал о методе из потока вопросов здесь, и это нормально для контроллера, не знаю, как отобразить его на html-странице для диаграмм
$series = $this->Orders->find('list', [
'keyField' => 'month',
'valueField' => 'price',
'fields'=>[
'month' => 'MONTHNAME(created_at)',
'price' => 'SUM(price)'
],
'group' => ['month'],
'order'=>['MONTHNAME(created_at)'=>'ASC'],
])
->where(['user_id' => $this->authUser['id']])
->toArray();
$months = json_encode(array_keys($series));
$amounts = json_encode(array_values($series));
$this->set('months', $months);
$this->set('amounts', $amounts);
$this->set(compact('series'));
страница отображения Html, которую я добавил в класс div, казалась добавленной неправильно
<div class="widget-content tab-content bg-white p-20">
<div class="ct-chart tab-pane active" id="scoreLineToDay"></div>
<script>
new Chartist.Line('.ct-chart', {
labels: [<?= json_encode($months) ?>],
series: [
[<?= json_encode($amounts) ?>]
]
}, {
low: 0,
showArea: true
});
</script>
<div class="ct-chart tab-pane" id="scoreLineToWeek"></div>
<div class="ct-chart tab-pane" id="scoreLineToMonth"></div>
кто-нибудь может показать мне, как это показать?
Большое спасибо!
Комментарии:
1. Вы дважды кодируете данные в формате JSON. Сравните ваши выходные данные с документацией, чтобы понять разницу, упаковка данных во вложенный массив, вероятно, тоже неверна.
2. привет, ndm, спасибо за ваш ответ, это проблема, которую я не могу решить в выходные, не могли бы вы показать мне правильный формат?
Ответ №1:
Удалите это json_encode
из вашего метода
$months = array_keys($series);
$amounts = array_values($series);
А также в ярлыке и ценности вам это не нужно []
, просто используйте
labels: <?= json_encode($months) ?>,
Комментарии:
1. большое вам спасибо, это работает :-). кстати, мне нравится/я подписался на ваш канал YouTube с прошлого года, и мне нравится учиться на нем.
2. привет, Алимон Карим, у меня возник вопрос по вашему поисковому запросу, основанному на изучении вашего канала YouTube, я опубликую новый вопрос и спрошу ваше мнение