Ajax 在 Laravel 路由中调用 returns 包含 ChartJS 标签日期的 json 编码数组
Ajax call at Laravel route that returns an json encoded array containing dates for ChartJS labels
我有一个 Laravel 5.7 项目,有 ajax 和 ChartJS。
在页面加载时,我正在 ajax 调用“action_route”,returns 我的 ChartJS 的标签。 php 函数是 json 编码标签数组,ajax 解码它们。
function get_data($year) {
$test = \DB::select( \DB::raw("
SELECT
DATE_FORMAT(date_for,'%c/%y') AS 'month',
col1,
col2,
col3
FROM test
WHERE
AND YEAR(date_for) = '" . $year . "'
GROUP BY month
ORDER BY month ASC
") );
return $test;
}
public function action_route() {
$data = self::get_data(2018);
foreach($data as $x) {
$labels[] = $x->month;
}
}
return view('/test/get_data', [
'labels' => json_encode($labels)
]);
DATE_FORMAT(date_for,'%c/%y') AS 'month' - Because I need dates if this format: '01/18', '02/18' etc.
在模板中:
var labels = JSON.parse('{{ $labels }}');
问题
这就是 get 放入 html.
中的内容
当使用{{ }}
时,laravel将转义它显示的数据。要阻止它转义数据,您应该将其包装在 {!! !!}
中,即
var labels = JSON.parse('{!! $labels !!}');
有关详细信息,您可以查看 Docs
我有一个 Laravel 5.7 项目,有 ajax 和 ChartJS。
在页面加载时,我正在 ajax 调用“action_route”,returns 我的 ChartJS 的标签。 php 函数是 json 编码标签数组,ajax 解码它们。
function get_data($year) {
$test = \DB::select( \DB::raw("
SELECT
DATE_FORMAT(date_for,'%c/%y') AS 'month',
col1,
col2,
col3
FROM test
WHERE
AND YEAR(date_for) = '" . $year . "'
GROUP BY month
ORDER BY month ASC
") );
return $test;
}
public function action_route() {
$data = self::get_data(2018);
foreach($data as $x) {
$labels[] = $x->month;
}
}
return view('/test/get_data', [
'labels' => json_encode($labels)
]);
DATE_FORMAT(date_for,'%c/%y') AS 'month' - Because I need dates if this format: '01/18', '02/18' etc.
在模板中:
var labels = JSON.parse('{{ $labels }}');
问题 这就是 get 放入 html.
中的内容当使用{{ }}
时,laravel将转义它显示的数据。要阻止它转义数据,您应该将其包装在 {!! !!}
中,即
var labels = JSON.parse('{!! $labels !!}');
有关详细信息,您可以查看 Docs