laravel - 如何更改 Laravel 集合输出中的某些值
问题描述
我有一个小型 Laravel 项目致力于收藏编辑。我有口才如下。
public function Import(){
$org = LabGroup::get();
return $org;
}
返回的结果如下,
[
{
id: 1,
uuid: "491cd440-79d0-11e9-a294-b93a2fd40038",
branch: 0,
name: "productA",
},
{
id: 2,
uuid: "491d0b70-79d0-11e9-aba8-4d9cdb66858f",
branch: 0,
name: "productB",
},
{
id: 3,
uuid: "491d0c20-79d0-11e9-a243-0d208e55c95a",
branch: 0,
name: "productC",
}
]
我需要将所有分支值从 0 更改为 1。我可以通过循环来完成,但我可能会使用其他更好的方法'map'
,比如我不熟悉的。任何建议或指导将不胜感激,谢谢。
解决方案
您可以通过这种方式使用map():
$org = LabGroup::get();
$org_branch_1 = $org->map(function ($item, $key) {
return [
'id' => $item->id,
'uuid' => $item->uuid,
'branch' => 1,
'name' => $item->name,
];
});
return $org_branch_1;
如果您不需要原始集合,您可以使用transform()以相同的方式:
$org = LabGroup::get();
return $org->transform(function ($item, $key) {
return [
'id' => $item->id,
'uuid' => $item->uuid,
'branch' => 1,
'name' => $item->name,
];
});
编辑:
这也可以:
return LabGroup::get()->transform(function ($item, $key) {
$item->branch = 1;
return $item;
});
推荐阅读
- php - 当我要做的只是测试主视图的端点时,为什么我的单元测试失败了?
- python - 在 django python 中渲染响应
- javascript - 没有名称的 Cookie 集
- c# - Ocelot API Gateway 错误:无法建立连接,因为目标机器主动拒绝它
- c - 如何在某些字符处忽略 scanf()?
- regex - not sure what's the problem with this "regex" in the "grep" shell command
- reactjs - 如何用 SCORM 和 React 计算总分?
- regex - AttributeError:“NoneType”对象没有属性“组”,组不返回无
- pytorch - PyTorch 在 M1 MacBook 上本地运行,但有些东西不能正常工作
- .net-core - 如何将新的 System.Windows.Forms.UserControl 添加到 .NET Core 3.1 项目而不会出错?