Дополнительно
Laravel - htmlspecialchars() ожидает, что параметр 1 будет строкой, дан объект
Я получаю эту ошибку:
htmlspecialchars() expects parameter 1 to be string, object given
I'm using in controller:
$data = '{"pr":{"code":"1"},"ac":[[{"icon":"web","action":"link","url":"asd"}]]}'
$newData = json_decode($data);
И я отправляю его в представление как массив: 'data' => $newData А когда я пытаюсь использовать $data в представлении, оно выдает ошибку
Пробовал уже использовать $data->ac ИЛИ $data['ac'], но все равно то же самое... Помогите, пожалуйста?
14
3
Когда вы используете лезвие echo
{{ $data }}
, оно автоматически экранирует вывод. Он может экранировать только строки. В ваших данных$data->ac
- это массив, а$data
- объект, ни один из которых не может быть выведен эхом как есть. Вам необходимо уточнить, как именно должны быть выведены данные. Как именно это будет выглядеть, зависит от того, что вы пытаетесь сделать. Например, чтобы вывести ссылку, вам нужно сделать{{ $data->ac[0][0][0]['url'] }}
(не уверен, почему у вас два вложенных массива, но я'просто следую вашей структуре данных).если вы хотите передать полный массив из html в контроллер, можете использовать это:
из blade.php:
в контроллере
Вы можете использовать `serialize
Но лучше всего в этом случае использовать метод
json_encode
в вашем блейде иjson_decode
в контроллере.