Symfony2仅使用json_encode中的值

时间:2015-05-30 22:24:47

标签: php symfony

我从数据库中获取一些信息并将该信息保存在一个数组中。我在{{dump(weights)}}模板中使用了twig,请参阅下面的数组转储:

enter image description here

如果我使用weights|json_encode()我可以获得此信息:

enter image description here

哪个没问题,但我的图表需要这样的格式的数据 - [69,72]

例如,这就是代码应该如何查找图表:

var geckoWeight = {
  labels: dates,
  datasets: [
    {
      label: "Front",
      fillColor: "rgba(0, 0, 0, 0.15)",
      strokeColor: gradient,
      pointColor: gradient,
      pointStrokeColor: "#202b33",
      pointHighlightStroke: "rgba(225,225,225,0.9)",
      data: [69,72]
    }
  ]
};

操作数据以适应图表数据所需的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

我会做这样的事情(在模型方法或控制器中):

class MyController extends Controller
{

    public function someAction()
    {
        $data = array(
            array('weight' => 69),
            array('weight' => 72),
        );

       $graphData = array_map(function($i) { return $i['weight']; }, $data);

        return $this->render('default/index.html.twig', array(           
            'data' => $weights,
        ));
    }

在我的树枝模板上:

<script>
    var weights = {{ data|json_encode }};
</script>

答案 1 :(得分:0)

您可以在JS代码中执行此操作:

var myWeights = {{ weights|json_encode() }};
var myWeightsArr = [];
for(var i in myWeights){
   if(myWeights.hasOwnProperty(i))
   myWeightsArr.push(myWeights[i].weight);
}

答案 2 :(得分:0)

基于您的输入数据,这样的内容应该给出您请求的输出

[
{% for weightsArray in weights %}
    {% if loop.index0 > 0 %},{% endif %}
    {% for weight in weightsArray %}
        {{ weight }}
    {% endfor %}
{% endfor %}
]