重命名laravel collection";“数据”;钥匙
有没有办法重命名laravel collection results中的数据键?此时此刻重命名laravel collection";“数据”;钥匙,laravel,laravel-5,collections,eloquent,laravel-5.4,Laravel,Laravel 5,Collections,Eloquent,Laravel 5.4,有没有办法重命名laravel collection results中的数据键?此时此刻 DB::table('contracts AS C')->paginate(1) 返回 { “当前页面”:1, “数据”:[ { “id”:191, “买方”:“约翰”, “提供者”:“Jane” } ], “从”:1, “最后一页”:1, “下一页url”:“”, “路径”:“, “每页”:1, “上一页url”:空, “至”:1, “总数”:1 }您可以使用收集方法 $unfiltered =
DB::table('contracts AS C')->paginate(1)
返回
{
“当前页面”:1,
“数据”:[
{
“id”:191,
“买方”:“约翰”,
“提供者”:“Jane”
}
],
“从”:1,
“最后一页”:1,
“下一页url”:“”,
“路径”:“,
“每页”:1,
“上一页url”:空,
“至”:1,
“总数”:1
}
您可以使用收集方法
$unfiltered = DB::table('contracts AS C')->paginate(1);
$filtered = $unfiltered->keyBy(function ($value, $key) {
if ($key == 'data') {
return 'parties';
} else {
return $key;
}
});
return $filtered;
你可以使用收集的方法
$unfiltered = DB::table('contracts AS C')->paginate(1);
$filtered = $unfiltered->keyBy(function ($value, $key) {
if ($key == 'data') {
return 'parties';
} else {
return $key;
}
});
return $filtered;
只有在调用分页器对象
toArray()
时,才会设置data
键。在此之前,它是一个带有键items
的集合
快速而肮脏的解决方案是在Paginator对象上调用toArray()
,并在json\u encode()
之前更改数组的键名
另一个解决方案是扩展Builder类,很像覆盖
paginate()
方法和Paginator的toArray()
方法。只有在调用Paginator对象toArray()
时才设置数据
键。在此之前,它是一个带有键items
的集合
快速而肮脏的解决方案是在Paginator对象上调用toArray()
,并在json\u encode()
之前更改数组的键名
另一种解决方案是扩展生成器类,很像覆盖
paginate()
方法和Paginator的toArray()
方法。您可以将集合转换为数组并对其进行操作:
$result = DB::table('contracts AS C')->paginate(1)->toArray();
$data = $result['data'];
unset($result['data']);
$result['parties'] = $data;
return $result;
这也不需要任何额外的循环。您可以将集合转换为数组并对其进行操作:
$result = DB::table('contracts AS C')->paginate(1)->toArray();
$data = $result['data'];
unset($result['data']);
$result['parties'] = $data;
return $result;
这也不需要任何额外的循环。这将返回一个空对象。这不是期望的结果。已编辑的解决方案会创建额外的空对象以及结果。@CENGKURMICHAEL:如果要更改原始集合键,请使用
keyBy
方法,而不是此方法。此方法返回空对象。这不是所需的结果。已编辑的解决方案会创建额外的空对象以及结果。@CengkuruMichael:如果要更改原始的集合键,请使用keyBy
方法,而不是解决此问题了吗?我也有同样的问题你解决了吗?我也有同样的问题