首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >htmlspecialchars要求参数%1为字符串,给定的数组

htmlspecialchars要求参数%1为字符串,给定的数组
EN

Stack Overflow用户
提问于 2018-06-24 03:19:28
回答 1查看 12.3K关注 0票数 0

在blade.php视图上打印模型内容时,我遇到了下一个错误:

代码语言:javascript
复制
htmlspecialchars() expects parameter 1 to be string, array given

这个模型"content“是表中的一列(json类型),它看起来就像这样:

代码语言:javascript
复制
[{"Item":2}]

这就是我试图在我的视图中使用它的方式:

代码语言:javascript
复制
@foreach ($post->loot->content as $name => $amount)
     <div class="item">
          <i class="fab fa-cuttlefish"></i>
          <div class="text">{{ $name }} <b>x{{ $amount }}</b></div>
     </div>
@endforeach

由于某些原因,如果我单独打印$name,它会显示在使用$amount变量时应该打印的数字(2)。

有什么办法可以解决我的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-24 03:33:10

如果$post->loot->content包含{"Item":2}

它是一个对象数组,所以你的$amount是整个{"Item": 2 },而不是2。

因此,循环可以是这样的:

代码语言:javascript
复制
@foreach ($post->loot->content as $id=>$json)
    @php
        $obj =json_decode($json, true)
    @endphp
    @foreach ($obj as $key=>$val)
     <div class="item">
          <i class="fab fa-cuttlefish"></i>
          <div class="text">{{ $key }} <b>x{{ $val }}</b></div>
     </div>
     @endforeach
@endforeach

不确定您需要什么,但也许您可以交换

代码语言:javascript
复制
 <div class="text">{{ $key }} <b>x{{ $val }}</b></div>

使用

代码语言:javascript
复制
   <div class="text">{{ $id }} <b>x{{ $val }}</b></div>

如果您需要列表中整个对象的索引,而不是属性的obj键。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51004362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档