Laravel collections

méthode eachSpread()

Quand est apparue cette méthode ?

depuis Laravel v5.5

Description


Exemples

Il y a 1 exemple pour cette collection

Exemple #1 : Affecter et utiliser des variables aux champs de notre collection

Collections utilisées

    
        // 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 €