获得特定的对象

时间:2017-09-18 09:59:23

标签: php json laravel

  

"数据&#34 ;:   " {\"螺纹\":{\" USER_ID \":76,\" PARENT_ID \":\" 139 \" \" ITEM_ID \":\" 178 \" \"评论\":\" S \& #34; \"的updated_at \":\" 2017年9月18日   15时19分24秒\" \" created_at \":\" 2017年9月18日   15时19分24秒\" \" ID为\" 140},\"用户\":{\" ID为\" :76,\"名称\":\"卡维\" \"姓\":\" Arasan公司\" ,\"移动\":\" 822-034-1179 \" \"电子邮件\":\" kayalmanimohana @的Gmail。 COM \" \"验证\":0,\" email_token \":\" 1ATrlUoyWy \" \" created_at \":\" 2017年9月15日   16时47分59秒\" \"的updated_at \":\" 2017年9月18日   15时18分57秒\" \"地址\":空,\"城市\":空,\"状态\" :空,\"国家\":空,\"销\":空,\"轮廓\":空,\"性别\":空,\" street_num \":空,\"提供商\":空,\" PROVIDER_ID \":空,\" is_delete \":空,\"用户名\":\"虚设\"}}",

我的数据库中有这样的数据对象。如何在数据线程中显示用户ID?我正在使用laravel

2 个答案:

答案 0 :(得分:0)

  

foreach($ unread as $ unr){               $ data = json_decode($ unr-> data,true);               $ user_id = $ data ['主题'] [' user_id'];
          }

这使得它成为可能

答案 1 :(得分:0)

@kayal如果你还在学习那么这很好但有时你应该阅读文档

这是您可以轻松完成此操作的方法

  

例如

假设表名test

+------------+
| id |  data |
+------------+
| 1  | {...} |
+------------+

假设您有模型Test.php

然后添加一个受保护的属性$casts它是这个数组中的一个数组add key => value key 是列名,值将是你要像对象一样转换的类型或者数组在这种情况下我使用的是对象。

namespace App;

class Test extends Model
{
    protected $casts = ['data' => 'object']; // add this property


在你的控制器中

在这种情况下我正在使用TestController.php

namespace App\Http\Controllers;

use App\Test;

class TestController extends Controller
{

    public function seeUserId()
    {
        $test = Test::find(1); // or your query
        $user_id = $test->data->thread->user_id; // you can access like this this is only example
    }


    public function saveData($data)
    {
        $test = new Test;
        $test->data = $data; // don't use json_encode() just pass any object or array ;
        $test->save();
    }

laravel doc: - https://laravel.com/docs/5.5/eloquent-mutators#array-and-json-casting