Как мне в принципе передать массив PHP в массив JS — Laravel 5?

#javascript #php #arrays #json #laravel

#javascript #php #массивы #json #laravel

Вопрос:

У меня есть массив PHP dd($iperfProfiles);

 array:1 [▼
  0 => "ipv6-udp-upload"
]
  

Пытаюсь получить к нему доступ в JS

Я пробовал

 var iperfProfiles = "{{ json_encode($iperfProfiles) }}";
console.log(iperfProfiles);
return false;
  

Я получаю

 IPERF:1699 [amp;quot;ipv6-udp-uploadamp;quot;]
  

Как мне в принципе превратить массив PHP в массив JS?

Комментарии:

1. Вы должны распечатать его, не экранируя вывод, используя var iperfProfiles = {!! json_encode($iperfProfiles) !!}; — Есть также директива JSON blade var iperfProfiles = @json($iperfProfiles); , которая, вероятно, является вашим лучшим выбором.

2. var iperfProfiles = {!! json_encode($iperfProfiles) !!}; без кавычек.

Ответ №1:

 //in PHP 
$iperfProfiles = json_encode($iperfProfiles);

//and then in JS
var iperfProfiles = JSON.parse({!!$iperfProfiles!!});
  

Комментарии:

1. Вызов неопределенной функции App Http Controllers json_string()

2. Это была просто опечатка, извините за это.

Ответ №2:

просто используйте директиву @json blade и передайте ей необработанные данные php, не кодируя их в JSON.

в шаблоне блейда:

 const profiles = "@json($profiles)"

  

Ответ №3:

попробуйте просто удалить кавычки

 var iperfProfiles = {{ json_encode($iperfProfiles) }};
console.log(iperfProfiles);