добавить данные в коллекцию Laravel - PullRequest
2 голосов
/ 21 апреля 2020

Я пытаюсь использовать Laravel коллекций для простого случая. Я собираю коллекцию предметов мебели и хотел бы дополнить строки предметов дополнительной информацией:

$collection = collect([
    ['name' => 'Desk', 'color' => 'Black'],
    ['name' => 'Chair', 'color' => 'Black'],
    ['name' => 'Bookcase', 'color' => 'Red'],
]);

Я бы хотел добавить поле 'stock_value' для некоторых предметов, основываясь на предмете. ключ «имя» (например). В конце я хотел бы, чтобы коллекция стала чем-то вроде:

['name' => 'Desk', 'color' => 'Black', 'stock_value' => 4],
['name' => 'Chair', 'color' => 'Black'],
['name' => 'Bookcase', 'color' => 'Red', 'stock_value' => 9]

Я не знаю, как этого добиться. Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 21 апреля 2020
$stockValue = 9;

return $collection->transform(function ($array) use ($stockValue) {
        if ($array['name'] === 'Desk') {
            $array['stock_value'] = $stockValue;
        }

        return $array;
    });

Вы можете использовать transform для изменения вашей коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...