2017-10-11 1 views
2

Est-il possible d'utiliser une méthode de collecte Laravel similaire à forget(), qui fonctionnera avec les tableaux imbriqués.Collections Laravel. forget() sur la clé imbriquée

Voici un exemple de ce que je veux.

J'ai un exemple Collection:

enter image description here

Et je veux déposer coordinates colonne (tous les éléments sont identiques) d'une manière similaire à

$cities->forget('cities', 2) // (second parameter is not real, it's a "nested level" and I took it from my head as example of what I want) 

En réponse je Je souhaite recevoir une méthode Collection existante ou une macro Collection qui fonctionnera sur une ligne.

Toutes les autres « plus d'une options de ligne » avec unset() et map() ne sera pas mieux, que ce que j'ai maintenant :)

+0

vous pouvez étendre la collection Laravel si vous voulez faire de cette façon. Autre moyen le plus rapide est –

+0

@ BartłomiejSobieszek Merci pour la réponse. Oui, je connais les collections de macroses, mais je pense qu'il pourrait y avoir une solution plus évidente. J'aime les pipelines nets et petits. –

Répondre

1

Je ne suis pas sûr que cela fonctionnera, mais je recommande une utilisation try flatten() à convertir votre collection multi-dimensionnelle en collection unique et ensuite essayer de retirer coordinates de l'aide forget()

$cities->flatten()->forget('coordinates') 
+1

Merci pour la réponse, j'ai pensé à ce sujet, mais comment pourrais-je l'inverser en arrière? :) –

+0

vérifier ce https://stackoverflow.com/questions/9419928/reverse-flatted-array-to-multidimensional je suppose qu'il sera vous aider :) –

+0

Désolé, mais je ne pense pas. Si nous avons aplati, il n'y a pas moyen de l'annuler, si nous ne stockons pas l'original. –