gpt4 book ai didi

javascript - ChartJS + Twig symfony

转载 作者:行者123 更新时间:2023-11-29 19:03:45 25 4
gpt4 key购买 nike

我遇到了一个问题,我正在尝试使用 twig 数据通过 ChartJS 创建图表(饼图)。

图表标签使用数组,所以我像这样给它一个 Twig 数组:

var myChart = new Chart(ctx, {
type: 'pie',
data: {
labels: ({{array|json_encode()|raw}})

但它显示“object Object”。出于我的目的,我想显示该对象的属性,在该示例中:“intitule”

My array

非常感谢。

最佳答案

我建议你自己写一个Twig extension并为其添加过滤功能:

<强>1。创建扩展类并添加一个名为chart的过滤器:

// src/AppBundle/Twig/AppExtension.php
namespace AppBundle\Twig;

class AppExtension extends \Twig_Extension
{
public function getFilters()
{
return array(
new \Twig_SimpleFilter('chart', array($this, 'chartFilter')),
);
}

public function chartFilter($items, $key = 'intitule')
{
$output = [];
foreach ($items as $item {
if (array_key_exists($key, $item)) {
$output[] = $item[$key];
}
}

return json_encode($output));
}
}

<强>2。创建服务

取决于您的 services.yml您可能需要为扩展创建服务的定义:

app.twig_extension:
class: AppBundle\Twig\AppExtension
tags:
- { name: twig.extension }

<强>3。在您的 View 中使用过滤器

您可以像这样使用过滤器:

var myChart = new Chart(ctx, {
type: 'pie',
data: {
labels: ({{array|chart|raw}})

关于javascript - ChartJS + Twig symfony,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44569166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com