如何将变量从Twig传递给JavaScript

时间:2016-05-13 21:29:27

标签: javascript symfony twig

我使用此脚本来显示此图表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。

1 个答案:

答案 0 :(得分:1)

据我了解,data包含没有任何标签的count列表。

所以我想这将完成这项工作:

series: [{
    name: 'Demandes',
    data: [{% for n in nb %}{% if not loop.first %},{% endif %}{{ n.count }}{% endfor %}]
}]