Laravel - 用htmlspecialchars()预计参数1为字符串,给定对象
问题描述:
我去这个错误:Laravel - 用htmlspecialchars()预计参数1为字符串,给定对象
htmlspecialchars() expects parameter 1 to be string, object given
我使用的控制器:
$data = '{"pr":{"code":"1"},"ac":[[{"icon":"web","action":"link","url":"asd"}]]}'
$newData = json_decode($data);
,我又把它发送到视图作为数组:'data'=> $ newData 而当我尝试使用$数据进入视图时,它给我那个错误
尝试使用$ data-> ac或$ data ['ac']但仍然一样... 请帮忙吗?
答
当您使用刀片回显{{ $data }}
它会自动转义输出。它只能逃避字符串。在您的数据中,$data->ac
是一个数组,而$data
是一个对象,它们都不能按原样回显。您需要更具体地了解如何输出数据。这看起来完全取决于你想要完成什么。例如要显示你需要做的链接{{ $data->ac[0][0]['url'] }}
(不知道为什么你有两个嵌套数组,但我只是遵循你的数据结构)。
@foreach($data->ac['0'] as $link)
<a href="{{ $link['url'] }}">This is a link</a>
@endforeach
+0
像魅力一样工作。谢谢。 – Kiddo
你能添加视图的代码吗? – Hammerbot
{{$ data}} =>就是这样。 – Kiddo
json_decode默认返回一个对象。使用'$ newData = json_decode($ data,TRUE);'为一个数组 – nogad