Et as tu pensé à la possibilitée de créer une nouvelle collection en retravaillant l'ancienne ? Avec les collections de Laravel ?
Salutations chers amis dév ;)
Je suis face à un petit bloquant que je n'arrive pas à passer :(
J'ai un Model Cours que voici :
Je récupère ces cours dans des collections et j'aimerais alimenter la propriété $isDoublon si l'un d'eux est déjà présent dans ma collection (le premier doublon sera $isDoublon = false; mais les autres doublons seront à true !)
Je pensais y aller avec la méthode each() offerte par l'API de Laravel, mais je sèche sur comment faire ça puisque je n'ai pas accès à la Collection une fois dans la fonction anonyme.
Auriez vous une idée ou une piste sur laquelle je peux embarquer ? ;)
Merci d'avance.
5 réponses
Alors merci, je n'y avais pas pensé ! ;)
Mais je sèche toujours car je n'obtiens pas le résultat que j'attends.
Voici ce que j'ai fais :
Comment puis-je dire à la Collection de tester l'unicité sur une autre clé que celle par défaut (id) ?
Hello,
J'ai une méthode qui me vient, un peu "crade" mais si ca peut t'aller la voici.
Tu utilise la méthode filter sur ta collection, en ajoutant les nom dans un tableau seulement si il n'existe pas. Par exemple :
Après réflexion, on pourrait utiliser dans mon cas les Collection Laravel en faisant :
Je n'ai pas testé le code, mais sur le principe il devrait être bon. Je pense tout de même que le travail avec un tableau et non une collection serait plus rapide (simplement pour un in_array et un push, je vois pas trop l'interêt de faire une nouvelle collection surtout si tu ne t'en sert qu'ici).
En espérant t'avoir aidé !
Salut PallMallShow !
Merci ton code m'a mis sur la piste. Malheureusement, je crois qu'on ne peut pas transmettre de variable à filter() (ou alors je m'y suis très mal pris, en tout cas il était incapable d'accèder aux variables en dehors de la fonction anonyme)
Du coup j'ai fais ceci :
Cela fonctionne ;)
Mon dd($cours) m'affiche correctement la liste des cours avec le dernier comme étant un doublon (car l'avant dernier possède le même cours_id et n'est pas marqué comme étant un doublon !) :)
Merci à vous deux ;)
Pour le faire propre avec filter, il faut faire ça :