我正在使用 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。