如何从laravel控制器返回带有数组变量的视图

时间:2018-05-23 20:09:51

标签: php laravel laravel-5 laravel-blade

在控制器中我有这个变量

$_colors = ['dummy1','dummy2','dummy3'];

我使用此代码返回视图

return view('view')->with(['colors'=>$_colors]);

在page.blade.php中,我尝试捕获标记内的变量

<script>
     var colors = "{{$colors}}";
</script>

不幸的是,它引发了错误:

  

htmlspecialchars()期望参数1为字符串,给定数组为

2 个答案:

答案 0 :(得分:0)

您可以尝试使用

<script>
     var colors = JSON.parse('{!! json_encode($colors, true) !!}');
</script>

将PHP数组编码为JSON字符串,然后在JavaScript代码中解码此字符串。

你也可以试试。

<script>
     var colors = JSON.parse('{!! $colors !!}');
</script>

答案 1 :(得分:0)

那是因为$_colors,您分配给$colors的是一个数组。当您将其放在视图中的javascript代码中时,将其打印为json字符串是合理的:

<script>
    var colors = {!! json_encode($colors) !!};
</script>