Extensions pour la classe Collection de Laravel. Notamment groupByMultiple pour regrouper les collections sur plusieurs champs au lieu d'un seul.
Exemple:
UN | B | C | D |
---|---|---|---|
foo | bar | baz | bruit sourd |
foo | gargariser | corge | plugh |
foo | bar | corge | bruit sourd |
foo | bar | corge | Waldo |
quux | gargariser | xyzzy | fred |
quux | grault | gargariser | quuz |
En appelant myCollection->groupBy(['A', 'B', 'C', 'D']) le résultat deviendrait :
Compatibilité croisée La fonction groupByMultiple est quelque peu compatible avec le groupBy original de Laravel dans le sens où elle fonctionne de la même manière si vous passez comme premier argument quelque chose qui n'est pas un tableau, donc tout comme groupBy, vous pouvez l'appeler avec une chaîne ou une fermeture. La fonction place simplement le premier argument dans un tableau s'il n'en est pas un. Si vous essayez de transmettre un appelable sous forme de tableau, donc ["Foo", "Bar"] où Foo::Bar() est une méthode valide, alors bien sûr, la fonction groupByMultiple tentera simplement de regrouper sur la clé "Foo" premier et "Bar" deuxième ; c'est la principale incompatibilité avec groupBy(). Bien sûr, vous pouvez transmettre un tableau contenant un appelable, donc [["Foo", "Bar"]] ou [["Foo", "Bar"], "Baz"] fonctionnerait très bien. Pour les personnes utilisant déjà groupBy, cette fonction sera très simple d’accès.