* @package Gedmo\Sluggable\Mapping\Event\Adapter * @subpackage ORM * @link http://www.gediminasm.org * @license MIT License (http://www.opensource.org/licenses/mit-license.php) */ final class ORM extends BaseAdapterORM implements SluggableAdapter { /** * {@inheritDoc} */ public function getSimilarSlugs($object, $meta, array $config, $slug) { $em = $this->getObjectManager(); $wrapped = AbstractWrapper::wrap($object, $em); $qb = $em->createQueryBuilder(); $qb->select('rec.' . $config['slug']) ->from($config['useObjectClass'], 'rec') ->where($qb->expr()->like( 'rec.' . $config['slug'], $qb->expr()->literal($slug . '%')) ) ; // include identifiers foreach ((array)$wrapped->getIdentifier(false) as $id => $value) { if (strlen($value) && !$meta->isIdentifier($config['slug'])) { $qb->andWhere($qb->expr()->neq('rec.' . $id, ':' . $id)); $qb->setParameter($id, $value); } } $q = $qb->getQuery(); $q->setHydrationMode(Query::HYDRATE_ARRAY); return $q->execute(); } }