Php 在laravel雄辩的结果中添加额外的键

Php 在laravel雄辩的结果中添加额外的键,php,eloquent,laravel-5.4,Php,Eloquent,Laravel 5.4,我有一个laravel查询生成器结果,如下所示 { "data": [ { "id": "", "awardID": 2, "title": "Dummy title", "status": "active", "raceStart":"", "raceEnd:":"" } ] } { "data": [ { "id": "", "awardID":

我有一个laravel查询生成器结果,如下所示

{
  "data": [
    {
      "id": "",
      "awardID": 2,
      "title": "Dummy title",
      "status": "active",
      "raceStart":"",
      "raceEnd:":""
    }
  ]
}      
{
  "data": [
    {
      "id": "",
      "awardID": 2,
      "title": "Dummy title",
      "status": "active",
      "period": {
        "raceStart":"",
        "raceEnd:":""
      }
    }
  ]
} 
我想要输出的是这样的东西

{
  "data": [
    {
      "id": "",
      "awardID": 2,
      "title": "Dummy title",
      "status": "active",
      "raceStart":"",
      "raceEnd:":""
    }
  ]
}      
{
  "data": [
    {
      "id": "",
      "awardID": 2,
      "title": "Dummy title",
      "status": "active",
      "period": {
        "raceStart":"",
        "raceEnd:":""
      }
    }
  ]
} 
如果期间是一个与父表具有1对1关系的表,则这将容易得多,但这里的情况并非如此。
如何做到这一点

检查这是否有效。我还没有尝试过,但根据文档,我们可以添加访问器和变异器。但它会改变你对模型的每一个反应

使用雄辩的 现在,当您访问
$race->period
时,将给出
raceStart
raceEnd

参考:

否则,另一个选项是在查询之后,进行
映射

{...}
->map(function($data) {
    $data->period = (object)[];
    $data->period['raceStart'] = $data->raceStart;
    $data->period['raceEnd'] = $data->raceEnd;
    unset($data->raceStart);
    unset($data->raceEnd);
    return $data;
});
参考:

使用QueryBuilder
你能展示一下你用来获取输出的代码吗?文档对方法2的工作原理有点模糊。我使用的是查询生成器,没有说服力。在我添加的实现示例中,您可能无法使用
array\u map
array\u walk
。欢迎