2017-09-12 7 views
0

Au sein d'une fonction dans mon entité purge adéquate, j'ai le code suivantComment supprimer une entrée supprimée de la logique arraycollection dans Symfony?

$markets = $this->getMarkets(); 
if(count($this->getAgencies()) > 0){ 
    foreach($this->getAgencies() as $agency) { 
    if(!$this->markets->contains($agency->getMarket())) { 
     $this->addMarket($agency->getMarket()); 
    } 
    } 
} 

donc en gros ce que je fais, je crée des documents qui seront affectés aux agences et ces agences appartiennent à des marchés différents. Comme il y a plus d'agences que de marchés et je ne veux pas de marchés en double, j'ai mis en place la condition if. Maintenant, l'ajout fonctionne parfaitement bien. Mais quand je veux éditer mon document et par exemple supprimer une agence de l'US (= marché) et qu'il n'y a pas d'autre agence américaine assignée au document, je veux que US soit complètement retiré de ce document. Je suis coincé avec la logique derrière cela. Par conséquent, si l'agence/le marché à supprimer n'est pas contenu dans les marchés restants, il devrait être supprimé, mais s'il reste une autre agence de ce marché, le marché ne devrait pas (bien sûr) être supprimé.

Les Marchés et les Agences sont tous deux des ArrayCollections dans mon entité de document, donc la fonction removeMarket existe!

Répondre

0

Pour ma, ce document struct -> Agence -> Marché

Générer un nouveau tableau $ this-> marchés de agences dans la purge adéquate.

OU

Créer méthode getMarkets() et le retour des marchés des agences quand vous avez besoin.

+0

Je vous ai dit que j'avais déjà cette méthode. Regardez mon dernier paragraphe: "Markets and Agencies sont deux ArrayCollections dans mon entité de document, de sorte que la fonction removeMarket existe!" J'ai des problèmes avec la logique! – sonja

+0

Je ne comprends pas exactement ce que vous voulez dire .. Je pensais déjà que je devrais utiliser la méthode preFlush. Mais je m'interroge sur la ** LOGIC **. Alors, comment ma condition si ou foreach ou tout ce dont j'avais besoin ressemblerait. Comment puis-je vérifier si le marché doit être retiré ou non .. – sonja

+0

Ok, cette logique est-elle dans le preFlush de l'entité Document? – Cuchu