首页 > 解决方案 > 从 SQL (Laravel) 检索 JSON 格式数组时遇到问题

问题描述

我在这里寻求帮助。

我一直在考虑将 JSON 数组存储到 MySQL 的列中并检索它们的数据。

问题是我还不知道该怎么做。

我设计了一个名为 employees 的表,其中包含以下字段:

id:主要标识符 json:保存 json 数组的位置

它看起来像这样:

在此处输入图像描述

我需要的是循环(迭代)通过json字段中的数组。我想我是用这段代码来获取数据的:

public function testjson() {

    $arr = DB::table('employees')
    ->where('json->name', 'John')
    ->get();


    return view('desktop.templates.testing', [
        'data' => json_decode($arr, true),
    ]);
}

在循环进入视图时,我无法访问该数组,尽我所能。

不知道如何将json数组循环到视图中,例如获取员工姓名并打印出来。我正在尝试完成这样的事情:

在此处输入图像描述

有人可以帮助我吗?有没有更好的方法来实现这一点?先感谢您

标签: mysqlsqlarraysjsonlaravel

解决方案


好的,所以我终于找到了我想要实现的解决方案。

控制器看起来像这样:

$x = collect(json_decode(Test::all(), true)); // Test:all() gets all values from the table I was working on
return view('desktop.templates.testing', [
    'data' => $x
]);

在视图中,现在我可以轻松迭代:

@foreach ($data as $item)
    <h1>{{ $item['json']['name']}}</h1>
    <h2>Age: {{ $item['json']['age']}}</h2>
    <h2>City: {{ $item['json']['city'] }}</h2>
@endforeach

最终结果:

在此处输入图像描述

谢谢大家的努力。希望这能帮助更多像我这样的人:D


推荐阅读