2017-04-04 126 views
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']但仍然一样... 请帮忙吗?

+1

你能添加视图的代码吗? – Hammerbot

+0

{{$ data}} =>就是这样。 – Kiddo

+0

json_decode默认返回一个对象。使用'$ newData = json_decode($ data,TRUE);'为一个数组 – nogad

回答

4

当您使用刀片回显{{ $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

相关问题