使用刀片

时间:2018-02-08 10:41:12

标签: javascript php laravel-5 blade

在我的Laravel控制器下,我必须使用数组:

$labels   = [6,7,8,9,10,11,12,13,14,15,16];

$datasets = [{
              "label": "Chiron",
              "backgroundColor": "#65e4ff",
              "borderColor": "#65e4ff",
              "data": [0.297619047619, 0.925595238095, 1, 
               0.886904761905, 0.902678571429, 0.993650793651, 
               0.925595238095, 0.915277777778, 0.97619047619, 0.920634920635]
             }];

当我使用刀片$label将这些php数组传递到我的视图时,它会正常工作但不会$datasets

var barChartData = {
    labels: {{json_encode($labels)}},
    datasets: {{json_encode($datasets)}}
};

出现以下错误:

  

未捕获的SyntaxError:意外的令牌&

页面的代码来源显示:

datasets:[{"label":"Chiron&quot...

然而,做:

var barChartData = {
    labels: {{json_encode($labels)}},
    datasets:<?php echo json_encode($datasets); ?>
};

就像一个魅力。我怎样才能正确使用blade来获得相同的结果?

编辑:以防它可能导致错误,我使用compact将数据发送到我的视图。不确定这是问题

return view('graphs.chartjs', compact('datasets', 'labels'));

编辑2 :我确认$datasets实际上是一个数组:

dd($datasets)

=>

array:4 [▼
    "label" => "Chiron"
    "backgroundColor" => "#65e4ff"
    "borderColor" => "#65e4ff"
    "data" => array:26 [▶]
  ]

2 个答案:

答案 0 :(得分:0)

更新您的$dataset数组,如

$datasets = [
              "label"=> "Chiron",
              "backgroundColor"=> "#65e4ff",
              "borderColor"=> "#65e4ff",
    "data"=> [0.297619047619, 0.925595238095, 1, 
               0.886904761905, 0.902678571429, 0.993650793651, 
             0.925595238095, 0.915277777778, 0.97619047619, 0.920634920635]
             ];
<{1>}输出后的

json_encode

答案 1 :(得分:0)

在您的视图文件中,使用以下代码解码finally字符串:

datasets

修改

注意到花括号,不是php数组,应该是:

html_entity_decode($value, ENT_QUOTES, 'UTF-8')

删除花括号并更改为:

'key' => 'value'