как вернуть представление с переменной массива из контроллера laravel - PullRequest
0 голосов
/ 23 мая 2018

В контроллере у меня есть эта переменная

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

Я возвращаю представление, используя этот код

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

в page.blade.php, я пытаюсь поймать переменную внутритег

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

к сожалению, он выдает ошибку:

htmlspecialchars () ожидает, что параметр 1 будет строкой, а массив -

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Это потому, что $_colors, который вы присвоили $colors, является массивом.Поскольку вы помещаете его в код javascript в представлении, было бы разумно напечатать его в виде строки json с:

<script>
    var colors = {!! json_encode($colors) !!};
</script>
0 голосов
/ 23 мая 2018

Вы можете попробовать использовать

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

, который закодирует ваш массив PHP в строку JSON, а затем расшифрует эту строку в коде JavaScript.

Вы также можете попробовать.

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