如何用for循环获取json数据数组

时间:2018-01-27 16:18:52

标签: laravel loops for-loop

我对for循环有疑问。 我只是在一列中保存json数据。 例如:

1 / John / ["jsondata1","jsondata2","jsondata3"]
2 / Elizabeth / ["jsondata3","jsondata4"]

我需要在表格中显示这些值。第3列最大数据大小总是4.没有jsondata5

我在刀片视图中创建了此循环。

<table>
@foreach($values  as $value)
    <tr>
        <td>{{$value->id}}</td>
        <td>{{$value->name}}</td>
        @for ($i = 0; $i < 4; $i++)
        <td>{{$value->jsondata[$i]}}</td>
        @endfor
    </tr>
@endforeach
</table>

在这种情况下,我遇到了一些错误。 错误是"Undefined offset: 2"

当我尝试for ($i = 0; $i < 2; $i++)

它只显示最后2个数据。 但如果我试过$i < 4 有一个错误。

为循环执行此操作的正确方法是什么? 我尝试了很多方法。

1 个答案:

答案 0 :(得分:1)

处理此问题的最佳方法是使用强制转换。来自the docs

  

在处理存储为序列化JSON的列时,数组强制转换类型特别有用。例如,如果您的数据库具有包含序列化JSON的JSON或TEXT字段类型,则在您的Eloquent模型上访问该属性时,将该属性添加到该属性将自动将该属性反序列化为PHP数组

将此添加到模型中,您将能够像使用简单数组一样使用JSON数据:

protected $casts = [
    'column_name' => 'array',
];