首页 > 解决方案 > 如何更改 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',比如我不熟悉的。任何建议或指导将不胜感激,谢谢。

标签: laravel

解决方案


您可以通过这种方式使用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;
            });

推荐阅读