Bläddra i källkod

Merge pull request #240 from Exercise/sluggable-query

[Sluggable] Use anchored regex query in ODM adapter
Gediminas Morkevicius 13 år sedan
förälder
incheckning
9b75036582
1 ändrade filer med 2 tillägg och 4 borttagningar
  1. 2 4
      lib/Gedmo/Sluggable/Mapping/Event/Adapter/ODM.php

+ 2 - 4
lib/Gedmo/Sluggable/Mapping/Event/Adapter/ODM.php

@@ -30,7 +30,7 @@ final class ODM extends BaseAdapterODM implements SluggableAdapter
         if ($identifier && !$meta->isIdentifier($config['slug'])) {
             $qb->field($meta->identifier)->notEqual($identifier);
         }
-        $qb->field($config['slug'])->Equals(new \MongoRegex('/^' . str_replace('/', '\/', $slug) . '/'));
+        $qb->field($config['slug'])->equals(new \MongoRegex('/^' . preg_quote($slug, '/') . '/'));
         $q = $qb->getQuery();
         $q->setHydrate(false);
 
@@ -54,9 +54,7 @@ final class ODM extends BaseAdapterODM implements SluggableAdapter
 
         $q = $dm
             ->createQueryBuilder($config['useObjectClass'])
-            ->where("function() {
-                return this.{$config['slug']}.indexOf('{$target}') === 0;
-            }")
+            ->field($config['slug'])->equals(new \MongoRegex('/^' . preg_quote($target, '/') . '/'))
             ->getQuery()
         ;
         $q->setHydrate(false);