我建议你写一个自己的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.使用视图中的过滤器
,你可以使用它像这样使用过滤器:
var myChart = new Chart(ctx, {
type: 'pie',
data: {
labels: ({{array|chart|raw}})