Laravel,数据表和模型水合物

时间:2018-07-05 13:36:25

标签: php laravel datatables laravel-5.6

问题或功能请求摘要

我需要使用水合物来填充未链接到数据库的模型。但是这样做时,我不能使用laravel的datatable()调用。

    $query = "EXECUTE [dbo].[rpt_controlclient]  '$XML' ";
    DB::connection('sqlsrvreplicate')->reconnect();
    $data = DB::connection('sqlsrvreplicate')->select($query);

    $ReportData = $Model->hydrate($data);
    return datatables()->collection($ReportData)->toJson();

我需要得到的东西

"data": [
[
  "Tiger Nixon",
  "System Architect"
],
[
  "Garrett Winters",
  "Accountant"
],

我实际上得到的东西

"data": [{
  "Name":"Tiger Nixon",
  "Job":"System Architect"
},
{
  "Name":"Garrett Winters",
  "Job":"Accountant"
}],

1 个答案:

答案 0 :(得分:0)

这就是您返回值的方式。检查此行的最后一种方法:

return datatables()->collection($ReportData)->toJson();

使用toJson(),您将以json对象的形式返回数据,这就是为什么您得到:

{
  "data": [
    {
      "Name": "Tiger Nixon",
      "Job": "System Architect"
    },
    {
      "Name": "Garrett Winters",
      "Job": "Accountant"
    }
  ]
}

相反,您可以这样做:

return datatables()->collection($ReportData)->toArray();

现在,如果您将其用于API,则可以在客户端将json解析为array。如果您的客户端是用php编写的,请执行以下操作:

$my_fancy_array = json_decode($received_data, true);