web-dev-qa-db-ja.com

コレクションlaravelに新しい値を追加する方法は?

新しい値を追加しようとする次のループがあります。

_ foreach ($pro->sig()->get() as $key => $sig) {
            $sig->val = 2;
        }
_

$pro->sig()の出力を出力すると、新しい値がありません_$sig->val_

10
MisterPi

コレクションがある場合は、Pushまたはputメソッドを使用できます。

Putの例:

$collection = collect(['product_id' => 1, 'name' => 'Desk']);

$collection->put('test', 'test');

$collection->all();

出力は次のようになります。

['product_id' => 1, 'name' => 'Desk', 'test' => 'test']

プッシュの例:

$collection = collect([1, 2, 3, 4]);

$collection->Push(5);

$collection->all();

出力:

[1, 2, 3, 4, 5]

リファレンス: https://laravel.com/docs/5.3/collections#method-Push

update5.8のリファレンス: https://laravel.com/docs/5.8/collections#method-Push

18

私の例では、私は以下のように試しました

foreach ($user->emails as $key => $email) {
   $email->test = "test";
}
return $user->emails;

それはのように出力します

  {
    "id": 76,
    "user_id": 5,
    "additional_email": "[email protected]",
    "test": "test"
  }

こうやってみてください。

6
suguna