Laravel遍历数组报错:htmlspecialchars参数类型不匹配求助
问题解决方法
问题原因
你用array(explode(",",$im->features))拆分字符串时犯了个小错误:explode函数本身就会返回一维数组,你再用array()包裹它,就变成了二维数组。比如原字符串3.99,10 weeks,300拆分后,$fn的结构是:
[ ['3.99', '10 weeks', '300'] ]
当你用@foreach($fn as $fun)遍历的时候,$fun拿到的是这个子数组,而Laravel的{{ $fun }}会调用htmlspecialchars处理内容,这个函数只接受字符串,传入数组自然就报错了。
解决办法
直接去掉外层的array()包裹,改成:
$fn = explode(",", $im->features);
这样$fn就是一维数组:['3.99', '10 weeks', '300'],再用原来的foreach循环:
@foreach($fn as $fun) {{ $fun }}<br> @endforeach
就能正常输出每个字符串了。
如果因为特殊情况必须保留二维数组(不推荐),可以嵌套一层foreach遍历子数组:
@foreach($fn as $subArray) @foreach($subArray as $fun) {{ $fun }}<br> @endforeach @endforeach
内容的提问来源于stack exchange,提问作者Jim
相关产品推荐
相关产品推荐

