Php 为foreach()问题提供的Laravel参数无效

Php 为foreach()问题提供的Laravel参数无效,php,laravel,Php,Laravel,我正试图从网站主页上的Steam服务中获得一份清单。但是我得到一个错误:为foreach()提供的参数无效。 我的刀片: @foreach(json_decode($giveaway->items) as $item) <img class="giveaway-item-img" src="https://steamcommunity-a.akamaihd.net/economy/image/class/570/{{$item->

我正试图从网站主页上的Steam服务中获得一份清单。但是我得到一个错误:
为foreach()提供的参数无效。

我的刀片:

            @foreach(json_decode($giveaway->items) as $item)
            <img class="giveaway-item-img" src="https://steamcommunity-a.akamaihd.net/economy/image/class/570/{{$item->classid}}">
            </div>

        <div class="giveaway-item-name">{{$item->name}}</div>
        @endforeach
但每次我出错。可能是什么问题,如何修复错误?

默认情况下,将返回一个对象。您需要提供
true
作为获取关联数组的第二个参数

@foreach(json_decode($giveaway->items, true) as $item)
默认情况下,将返回一个对象。您需要提供
true
作为获取关联数组的第二个参数

@foreach(json_decode($giveaway->items, true) as $item)
请使用此代码

@foreach (json_decode($giveaway->items?:"{}") as $item)
我认为$giveway->items的值为空

请使用此代码

@foreach (json_decode($giveaway->items?:"{}") as $item)

我认为$giveway->items的值为空

我可以看到您在php中使用了这个值:

$items=PagesController::sortByChance(json_decode(json_encode($this->\u getInfoOfGame($game)));
您真的需要在这里使用json_编码,然后使用json_解码吗

  • $this->\u getInfoOfGame($game)
    返回数组吗
  • PageController::sortByChange()
    是否返回数组
我建议不要过度使用json_编码、json_解码,将它们作为数组保存在php代码中,只使用json_解码Steam数据(我假设您从Steam获取数据)

  • 将数据作为数组发送到您的视图(这样更容易调试),这取决于您如何编写代码,但我个人不认为在视图中使用json_decode(…)

让我们知道它是如何运行的。

我可以看出您在php中使用的是:

$items=PagesController::sortByChance(json_decode(json_encode($this->\u getInfoOfGame($game)));
您真的需要在这里使用json_编码,然后使用json_解码吗

  • $this->\u getInfoOfGame($game)
    返回数组吗
  • PageController::sortByChange()
    是否返回数组
我建议不要过度使用json_编码、json_解码,将它们作为数组保存在php代码中,只使用json_解码Steam数据(我假设您从Steam获取数据)

  • 将数据作为数组发送到您的视图(这样更容易调试),这取决于您如何编写代码,但我个人不认为在视图中使用json_decode(…)


让我们知道它是如何运行的。

不,不起作用。.我在数据库中拥有的所有信息,我检查并调试这些信息,你确定
$giveway->times
包含有效的json字符串吗?var_dump给我结果:字符串(22)“Crimson Wyvern大括号”不,不起作用..我在数据库中的所有信息,我检查并调试信息,你确定
$giveway->times
包含有效的json字符串吗?var_dump给我结果:string(22)“Crimson Wyvern Bracers”你能发布
dd(json解码($giveway->items))
string(22)“Crimson Wyvern Bracers”所以它不是数组。它只是字符串…,你不能处理每个字符串。哦,好吧。我会在这里试着做一个jsontry来调试
PagesController::sortByChance(json_decode(json_encode($this->\u getInfoOfGame($game));
,不要假设json_解码或编码发送了一个有效的数据,用于
$this->\u getInfoOfGame($game)
,您可以将其返回值设置为类似于
return$data?:[];
的值,以便在存在数据时返回数据,或者可以发布
dd(json_decode($giveway->items))
字符串(22)“Crimson Wyvern大括号”所以它不是数组。它只是字符串…,你不能处理每个字符串。哦,好吧。我会在这里试着做一个jsontry来调试
PagesController::sortByChance(json_decode(json_encode($this->\u getInfoOfGame($game));
,不要假设json_解码或编码发送了一个有效的数据,用于
$this->\u getInfoOfGame($game)
,您可以将其返回值设置为类似
return$data?:[];
的值,以便在存在数据时返回数据或数组(json的有效数据)变量转储给我结果:字符串(22)“Crimson Wyvern大括号”但是有些DB表是空的:created_at,updated_at,是的,现在我看到了,这个字符串。但是我不知道如何修复这个问题并使正常的JSONC。你可以在$giveway->items中共享确切的内容。你不能为循环执行它。你必须像这样存储数据{'classid':'your_classid','name':'name}如果数据不是json,请隐藏blockvar_dump给我结果:string(22)“Crimson Wyvern大括号”但是有些DB表是空的:created_at,updated_atyes,现在我看到了,这个字符串。但是我不知道如何修复这个问题并使正常的JSONC。你可以在$giveway->items中共享确切的内容。你不能在for循环中执行它。你必须像这样存储数据{'classid':'your_classid','name':'name'。如果数据不是json,请隐藏该块