/** * Avoid duplicates, append numbers to value * * @param string $value Value * * @return string */ private function numerize($value) { $dql = sprintf("SELECT u.slug FROM %s u WHERE u.slug like '%s%%'", $this->entity, $value); $query = Locator::get('core.entity.manager')->createQuery($dql); $rows = $query->getResult(); $slug = $value; $no = 1; do { $found = false; foreach ($rows as $row) { if ($slug == $row['slug']) { $found = true; break; } } if ($found) { $slug = $value . '-' . $no; $no++; } } while ($found); return $slug; }
/** * @return Manager */ public function getManager() { return Locator::get('core.entity.manager'); }