如何在集合laravel中添加新值?

时间:2016-10-21 08:14:27

标签: php laravel laravel-5 laravel-5.3

我有以下循环,我尝试添加一个新值:

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

当我打印$pro->sig()的输出时,我没有新值$sig->val

3 个答案:

答案 0 :(得分:9)

如果您有收藏品,可以使用pushput方法。

放置示例:

$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

答案 1 :(得分:2)

在我的例子中,我尝试了下面的

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

输出如,

  {
    "id": 76,
    "user_id": 5,
    "additional_email": "test@test.com",
    "test": "test"
  }

请尝试这样。

答案 2 :(得分:1)

$users = User::find(1);

$user->objectName = " Value ";

如果您只需要通过 eloquent 推送集合中的另一个对象,那效果很好。