Php 在laravel雄辩的结果中添加额外的键
我有一个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":
{
"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
。欢迎