如何在Laravel集合输出中更改某些值

时间:2019-05-19 01:30:35

标签: 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'。任何建议或指导将不胜感激,谢谢。

2 个答案:

答案 0 :(得分:1)

尝试一下:

$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;

如果您不需要原始文件,可以对其进行转换:

$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;
            });

答案 1 :(得分:0)

您可以在查询中使用雄辩的update()方法:

$updatedOrg = LabGroup::get()->update(['branch' => 1]);
return $updatedOrg; \\Returns the result with the updated branch value.