J'ai la boucle suivante où j'essaie d'ajouter une nouvelle valeur:
foreach ($pro->sig()->get() as $key => $sig) {
$sig->val = 2;
}
Lorsque j'imprime la sortie de $pro->sig()
je n'ai pas la nouvelle valeur $sig->val
Si vous avez une collection, vous pouvez utiliser la méthode Push
ou put
.
Exemple avec put:
$collection = collect(['product_id' => 1, 'name' => 'Desk']);
$collection->put('test', 'test');
$collection->all();
La sortie sera:
['product_id' => 1, 'name' => 'Desk', 'test' => 'test']
Exemple avec Push:
$collection = collect([1, 2, 3, 4]);
$collection->Push(5);
$collection->all();
Production:
[1, 2, 3, 4, 5]
Référence: https://laravel.com/docs/5.3/collections#method-Push
mise à jour Référence pour 5.8: https://laravel.com/docs/5.8/collections#method-Push
Dans mon exemple, j'ai essayé comme ci-dessous
foreach ($user->emails as $key => $email) {
$email->test = "test";
}
return $user->emails;
Il sort comme,
{
"id": 76,
"user_id": 5,
"additional_email": "[email protected]",
"test": "test"
}
Veuillez essayer comme ça.