Php 如何使用laravel5将json数据作为对象从数据mysql中提取?

Php 如何使用laravel5将json数据作为对象从数据mysql中提取?,php,mysql,json,laravel-5,Php,Mysql,Json,Laravel 5,我有一个表,在一个列中包含JSON,我必须将其作为对象获取 但是,当我使用laravel模型提取数据时,它显然会以JSON或字符串的形式返回,我必须在使用该模型的每个地方对其进行解码(这不是枯燥的概念)但问题是,如果我拉一个记录和一个地方,那么它只是一个代码执行,好吧,但如果我必须拉数据的收集和多个地方,那么我必须运行相同的解码,每次在laravel有什么方法可以为我做,而不是使用自制的循环 这是桌子 +----------------------------------------------

我有一个表,在一个列中包含JSON,我必须将其作为对象获取 但是,当我使用laravel模型提取数据时,它显然会以JSON或字符串的形式返回,我必须在使用该模型的每个地方对其进行解码(这不是枯燥的概念)但问题是,如果我拉一个记录和一个地方,那么它只是一个代码执行,好吧,但如果我必须拉数据的收集和多个地方,那么我必须运行相同的解码,每次在laravel有什么方法可以为我做,而不是使用自制的循环

这是桌子

+-----------------------------------------------------------------------------+
|                                   table                                     |
+-----------------------------------------------------------------------------+
|id | title | text                                                            |
+-----------------------------------------------------------------------------+
| 1 |   A1  | {"subject":"Subject1","word":"Lorem ipsum dolor sit amet, ..."} |
| 2 |   A2  | {"subject":"Subject2","word":"Lorem ipsum dolor sit amet, ..."} |
| 3 |   A3  | {"subject":"Subject3","word":"Lorem ipsum dolor sit amet, ..."} |
| 4 |   A4  | {"subject":"Subject4","word":"Lorem ipsum dolor sit amet, ..."} |
| 5 |   A5  | {"subject":"Subject5","word":"Lorem ipsum dolor sit amet, ..."} |
| 6 |   A6  | {"subject":"Subject6","word":"Lorem ipsum dolor sit amet, ..."} |
| 7 |   A7  | {"subject":"Subject7","word":"Lorem ipsum dolor sit amet, ..."} |
| 8 |   A8  | {"subject":"Subject8","word":"Lorem ipsum dolor sit amet, ..."} |
| 9 |   A9  | {"subject":"Subject9","word":"Lorem ipsum dolor sit amet, ..."} |
| 10|  A10  | {"subject":"Subject10","word":"Lorem ipsum dolor sit amet..."}  |
+-----------------------------------------------------------------------------+
我已经试过了

$tables = TableModel::all();
foreach ($tables as &$table) {
    $table->text = json_decode($table->text);
}

得到我想要的结果

Array
(
    [0] => stdClass Object
        (
            [id] => 1
            [title] => A1
            [text] => stdClass Object
                (
                    [subject] => Subject1
                    [word] => Lorem ipsum dolor sit amet...
                )

        )

    [1] => stdClass Object
        (
            [id] => 2
            [title] => A2
            [text] => stdClass Object
                (
                    [subject] => Subject2
                    [word] => Lorem ipsum dolor sit amet...
                )

        )

    ...
)
如果有什么简单的方法可以更有效地遵循干法 那就和我分享吧


提前谢谢

每次从数据库获取记录时,都可以使用
属性转换
概念以所需格式获取结果。要将JSON转换为数组,可以使用以下代码

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

正如在.

中提到的,我调用了model,然后使用
json\u decode()
Thank:)遍历它,并用object覆盖then元素,这对我帮助很大,节省了时间