首页 > 解决方案 > Laravel Spatie - 为什么显示的 [object Object] 不是来自数据库的确切值?

问题描述

我正在使用 Spatie 在我的网站上记录活动。我创建了一个表,其中将显示来自 activity_log 数据库表的数据。从数据库中检索数据没有问题,但我的问题是,每当我显示properties列中的值时,它只显示[object Object].

数据表如下所示:

在此处输入图像描述

虽然它在数据库表中的实际值activity_log是这样的:

在此处输入图像描述

这是我的控制器中的代码段:

public function datatable_Activities()
{
    $data = Activity::all()->where('causer_id', '=', Auth::user()->id);
    return Datatables::of($data)->make(true);
}

用于在我的刀片文件中显示数据的代码段:

<script>
$(function () {
    $("#activity_table_log").DataTable({
      responsive:true,
      processing:true,
      pagingType: 'full_numbers',
      stateSave:false,
      scrollY:true,
      scrollX:true,
      ajax:"{{route('datatable_Activities')}}",
      order:[0, 'desc'],
      columns:[
        {data:'log_name', name: 'log_name'},
        {data:'description', name: 'description'},
        {data:'subject_id', name: 'subject_id'},
        {data:'properties', name: 'properties'},
        {data:'created_at', name: 'created_at', searchable: false, sortable:false},
      ]
    });
  });
</script>

我已经尝试过json_decode(),但不幸的是它不起作用。如何正确显示它,就像存储properties 在数据库中的列中的值而不是[object Object]

但是,当我在 Developer's Tool 中检查响应时,它会准确地从数据库中检索属性值。

这是我试图放入数据表中的示例嵌套 JSON 对象:

{
"id":6,
   "log_name":"PurchaseH",
   "description":"A purchase h has been updated",
   "subject_id":1,
   "subject_type":"App\\Model\\Purchase\\PurchaseH",
   "causer_id":1,
   "causer_type":"App\\User",
   "properties":{
      "attributes":{
         "total":1250000
      },
      "old":{
         "total":null
      }
   },
   "created_at":"2020-06-14T09:04:34.000000Z",
   "updated_at":"2020-06-14T09:04:34.000000Z"
},

PS 我正在使用最新的 Google chrome、Laravel 框架和 Spatie。

标签: phpjsonlaravelactivitylog

解决方案


推荐阅读