Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重命名laravel collection";“数据”;钥匙_Laravel_Laravel 5_Collections_Eloquent_Laravel 5.4 - Fatal编程技术网

重命名laravel collection";“数据”;钥匙

重命名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 =

有没有办法重命名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);

$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
方法,而不是解决此问题了吗?我也有同样的问题你解决了吗?我也有同样的问题