Laravel Yajra数据表[对象对象] + spatie / laravel-activitylog属性列(json)

时间:2020-04-21 21:38:45

标签: php laravel datatables yajra-datatable spatie

我正在建立一个数据表(yajra),以从spatie/laravel-activitylog数据库表中提取数据。到目前为止,一切正常,但是数据库中的properties列为json。好吧,如果我将json直接绘制到数据表中,我将得到一个[object Object]。有什么方法可以在特定列中美化json?

数据表列代码:

columns: [
    { data: 'causer_type' },
    { data: 'causer_id' },
    { data: 'subject_type' },
    { data: 'subject_id' },
    { data: 'description' },
    { data: 'properties' },
    { data: 'created_at' },
    { data: 'updated_at' },
],

控制器功能:

// Get data
$dump = Activity::all();
// Return datatable
return DataTables::of($dump)->make(true);

properties转储的示例:

"properties":{"old":{"email":"---","phone":"---","active":"1","country":"---","client_name":"---","date_of_birth":null,"delivery_town":"---","partner_number":null,"delivery_address":"---","delivery_zipcode":"---","facebook_profile":null,"partner_password":"---","personal_id_number":null,"accept_notifications":"1"},"attributes":{"email":"---","phone":"---","active":"1","country":"---","client_name":"---","date_of_birth":null,"delivery_town":"---","partner_number":null,"delivery_address":"---","delivery_zipcode":"---","facebook_profile":null,"partner_password":"---","personal_id_number":null,"accept_notifications":"1"}}

我尝试原始编辑列,但由于某些原因总是返回null ...

任何帮助将不胜感激! 谢谢。

编辑#1 我想出来打印数据,但作为字符串。真的不知道databable列是否可以存储/显示json数据...

// Get data
$dump = Activity::all();
// Prettify the properties column
foreach ($dump as $log)
{
    //dd(json_encode($log->properties, JSON_PRETTY_PRINT));
    $log->properties_pretty = json_encode($log->properties, JSON_PRETTY_PRINT);
}
// Return datatable
return DataTables::of($dump)->make(true);

0 个答案:

没有答案