Quand est apparue cette méthode ?
depuis Laravel v5.5
Description
La méthode eachSpread() est un peu différente que la méthode each() que tu peux voir juste au-dessus. En effet, elle va toujours te permettre de parcourir la collection, mais tu vas pouvoir affecter directement des variables aux différents champs de chaque item de ta collection.
Exemples
Il y a 1 exemple pour cette collection
Exemple #1 : Affecter et utiliser des variables aux champs de notre collection
Collections utilisées
Cliquez sur chaque collection pour voir son code, ou cliquez sur le bouton 'Voir toutes les
collections' pour toutes les ouvrir en une fois.
// define improved nested collection
$this->nestedImproved = collect([
['Spaghetti à la carbonara', 'Moyen', 15.75, 5.5],
['Loup entier grillé', 'Chef', 30, 7],
['Coupe Colonel', 'Facile', 7.5, 12.5],
]);
Illuminate\Support\Collection {#437 ▼
#items: array:3 [▼
0 => array:4 [▼
0 => "Spaghetti à la carbonara"
1 => "Moyen"
2 => 15.75
3 => 5.5
]
1 => array:4 [▼
0 => "Loup entier grillé"
1 => "Chef"
2 => 30
3 => 7
]
2 => array:4 [▼
0 => "Coupe Colonel"
1 => "Facile"
2 => 7.5
3 => 12.5
]
]
}
// define nested collection
$this->nested = collect([
['name' => 'Spaghetti à la carbonara', 'level' => 'Moyen', 'price' => 'Economique', 'type' => 'Pâtes'],
['name' => 'Loup entier grillé', 'level' => 'Chef', 'price' => 'Cher', 'type' => 'Poisson'],
['name' => 'Gnocchi au pesto', 'level' => 'Facile', 'price' => 'Economique', 'type' => 'Pâtes'],
['name' => 'Daurade vapeur et ses pommes de terre', 'level' => 'Moyen', 'price' => 'Moyen', 'type' => 'Poisson'],
['name' => 'Dame blanche', 'level' => 'Moyen', 'price' => 'Moyen', 'type' => 'Dessert'],
['name' => 'Banana Split', 'level' => 'Chef', 'price' => 'Cher', 'type' => 'Dessert'],
['name' => 'Coupe Colonel', 'level' => 'Facile', 'price' => 'Economique', 'type' => 'Dessert'],
]);
Illuminate\Support\Collection {#440 ▼
#items: array:7 [▼
0 => array:4 [▼
"name" => "Spaghetti à la carbonara"
"level" => "Moyen"
"price" => "Economique"
"type" => "Pâtes"
]
1 => array:4 [▼
"name" => "Loup entier grillé"
"level" => "Chef"
"price" => "Cher"
"type" => "Poisson"
]
2 => array:4 [▼
"name" => "Gnocchi au pesto"
"level" => "Facile"
"price" => "Economique"
"type" => "Pâtes"
]
3 => array:4 [▼
"name" => "Daurade vapeur et ses pommes de terre"
"level" => "Moyen"
"price" => "Moyen"
"type" => "Poisson"
]
4 => array:4 [▼
"name" => "Dame blanche"
"level" => "Moyen"
"price" => "Moyen"
"type" => "Dessert"
]
5 => array:4 [▼
"name" => "Banana Split"
"level" => "Chef"
"price" => "Cher"
"type" => "Dessert"
]
6 => array:4 [▼
"name" => "Coupe Colonel"
"level" => "Facile"
"price" => "Economique"
"type" => "Dessert"
]
]
}
Code source
$improvedNested = collect([
["Spaghetti à la carbonara", "Moyen", 15.75, 5.5],
["Loup entier grillé", "Chef", 30, 7],
["Coupe Colonel", "Facile", 7.5, 12.5],
]);
$nested = collect([
["name" => "Spaghetti à la carbonara", "level" => "Moyen", "price" => "Economique", "type" => "Pâtes"],
["name" => "Loup entier grillé", "level" => "Chef", "price" => "Cher", "type" => "Poisson"],
["name" => "Gnocchi au pesto", "level" => "Facile", "price" => "Economique", "type" => "Pâtes"],
["name" => "Daurade vapeur et ses pommes de terre", "level" => "Moyen", "price" => "Moyen", "type" => "Poisson"],
["name" => "Dame blanche", "level" => "Moyen", "price" => "Moyen", "type" => "Dessert"],
["name" => "Banana Split", "level" => "Chef", "price" => "Cher", "type" => "Dessert"],
["name" => "Coupe Colonel", "level" => "Facile", "price" => "Economique", "type" => "Dessert"],
]);
$improvedNested->eachSpread(function ($name, $difficulty, $price, $tax) {
$ttcPrice = round($price * (1 + $tax / 100), 2);
echo "NOM : $name, DIFFICULTE : $difficulty, PRIX HT : $price €, PRIX TTC : $ttcPrice €" . PHP_EOL;
});
Résultat
NOM : Spaghetti à la carbonara, DIFFICULTE : Moyen, PRIX HT : 15.75 €, PRIX TTC : 16.62 €
NOM : Loup entier grillé, DIFFICULTE : Chef, PRIX HT : 30 €, PRIX TTC : 32.1 €
NOM : Coupe Colonel, DIFFICULTE : Facile, PRIX HT : 7.5 €, PRIX TTC : 8.44 €