我使用此脚本来显示此图表1。
<script>
$(function () {
$('#container1').highcharts({
chart: {
type: 'column',
options3d: {
enabled: true,
alpha: 10,
beta: 25,
depth: 70
}
},
title: {
text: 'Nombre De Demande Par Categorie'
},
subtitle: {
},
plotOptions: {
column: {
depth: 25
}
},
xAxis: {
categories: ['Education','Beauté Et Santé','Livraison','Maison Et Jardin','Mission Et Affaire','Evénement Et Restauration','Travaux Informatique']
},
yAxis: {
title: {
text: null
}
},
series: [{
name: 'Demandes',
data: [1,5,7,0,null,1,2]
}]
});
});
</script>
但是&#34;数据&#34;必须有我的数据库中的变量:
series: [{
name: 'Demandes',
data: [1,5,7,0,null,1,2]
}]
所以我在我的存储库中创建了一个新函数:
class DemandeRepository extends \Doctrine\ORM\EntityRepository
{
public function getNb($categorie_id)
{
$query = $this->createQueryBuilder('u');
$query->SELECT ('COUNT(u)');
$query->join('u.service','s');
$query->where('s.Categorie = :id');
$query->setParameter('id',$categorie_id);
return $query->getQuery()->getSingleScalarResult();
}
}
然后在控制器中我包含了函数:
class DashbroadController extends Controller
{
public function dashbroadAction()
{
$em = $this->getDoctrine()->getManager();
$Categorie = $em->getRepository("tutoBackofficeBundle:Categorie")->findAll();
$nb=array();
foreach ($Categorie as $categorie){
$nb[]=array(
'categorie'=>$categorie,
'count'=>$em->getRepository("tutoBackofficeBundle:Demande")->getNb($categorie)
);
}
return $this->render('tutoBackofficeBundle:Dashbroad:dashbroad.html.twig',array('nb'=>$nb));
}
}
在树枝上:
{% for n in nb %}
{{ n.categorie }} -> {{ n.count }}<br>
现在我希望有类似的东西:
data: [{{ n.count }}]
但我不知道如何将我的变量从Twig传递给Java Script。
答案 0 :(得分:1)
据我了解,data
包含没有任何标签的count
列表。
所以我想这将完成这项工作:
series: [{
name: 'Demandes',
data: [{% for n in nb %}{% if not loop.first %},{% endif %}{{ n.count }}{% endfor %}]
}]