/** * Clean criteria data which no long exist in the current criteriagroup * * @param array $neededCriteria * @param array $existingCriteria * @param Criteriagroup $criteriagroup * @return PublishingManager */ protected function cleanCriteria(array $neededCriteria = array(), array $existingCriteria = array(), Criteriagroup $criteriagroup) { //echo "inside cleanCriteria<br>\n"; $toRemove = array_filter($existingCriteria, function (Criterion $current) use($neededCriteria) { //echo "inside cleanCriteria closure<br>\n"; $removeCriterion = true; foreach ($neededCriteria as $data) { if ($current->getId() == $data->getId()) { $removeCriterion = false; break; } } return $removeCriterion; }); foreach ($toRemove as $criterionToRemove) { $criteriagroup->removeCriterion($criterionToRemove); $this->om->remove($criterionToRemove); } return $this; }
/** * Clean Criteria which no longer exist in the current Group. * * @param \Innova\PathBundle\Entity\Criteriagroup $group * @param array $neededCriteria * @param array $existingCriteria * * @return \Innova\PathBundle\Manager\Condition\CriteriaManager */ public function cleanCriteria(Criteriagroup $group, array $neededCriteria = [], array $existingCriteria = []) { $toRemove = array_filter($existingCriteria, function (Criterion $current) use($neededCriteria) { $removeCriterion = true; foreach ($neededCriteria as $criterion) { if ($current->getId() == $criterion->getId()) { $removeCriterion = false; break; } } return $removeCriterion; }); foreach ($toRemove as $criterionToRemove) { $group->removeCriterion($criterionToRemove); $this->om->remove($criterionToRemove); } return $this; }