如何使用 Blade 传递 PHP 变量循环遍历 JavaScript 代码

How do I loop through JavaScript code with Blade passing PHP variables

我正在使用 chart.js 来显示一些数据,当代码是这样时一切正常:

JavaScript/Blade

 var pieDataAssignments = [

                @for($i = 0;$i<count($name);$i++)

            {
                value: {!! count(array_filter($ass_c,create_function('$a','return $a=="'.$name[$i].'";')))!!},
                color: 'pink',
                highlight: "#eaa5a2",
                label: 'Subject'
            },

                @endfor

        ];

然后我认为它在工作,确实如此,我想开始自定义饼图。

首先,我尝试分别为每个变量插入值,例如

color: {!! $colour[$i] !!},
etc...

那只是阻止了饼图的出现,这让我开始思考我的失败..

然后我尝试将所有内容插入到第一个 Blade 调用中,如下所示:

Blade

{!!'

{
    value:'.count(array_filter($ass_c,create_function('$a','return $a=="'.$name[$i].'";'))).',
    color: "'.$colour[$i].'",
    highlight: "#eaa5a2",
    label: "hi"
},

'!!}

可是,还是没有出现。

我怎样才能循环 JavaScript 代码并同时传递 php 变量?我不知道还能尝试什么,除了告诉我完全按照我的尝试去做之外,我在网上找不到任何东西。

提前谢谢你。

我解决了这个问题,我的代码是在它自己的实例中重新创建数组。现在可以使用的代码如下:

var pieDataAssignments = [

        @for($i = 0;$i<count($name);$i++)

        {!!'

        {
            value:'.count(array_filter($ass_c,create_function('$a','return $a=="'.$name[$i].'";'))).',
            color: "'.$colour[$i].'",
            highlight: "#eaa5a2",
            label: "'.$name[$i].'"
        },

        '!!}



        @endfor

];