Quand est apparue cette méthode ?
depuis Laravel v5.1
Description
Tu as des collections complexes avec des dizaines de clés (c'est mal ça !!) et tu veux filtrer ces collections afin de n'avoir que certaines clés en retour ? La méthode only est la méthode qu'il te faut
Exemples
Il y a 1 exemple pour cette collection
Exemple #1 : Nom et prix des menus
Collection utilisée
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 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
$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"],
]);
$filtered = $nested->only(['name', 'price']);
print_r($filtered);
Résultat
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
)
[escapeWhenCastingToString:protected] =>
)