Author: Russ
Date: 2010-02-07 19:14:52 +0100 (Sun, 07 Feb 2010)
New Revision: 27657

Modified:
   
plugins/sfDoctrinePlugin/branches/1.3-2.0/lib/validator/sfValidatorDoctrineUnique.class.php
Log:
[1.4][sfDoctrine2Plugin] Fix unique validator when editing existing record


Modified: 
plugins/sfDoctrinePlugin/branches/1.3-2.0/lib/validator/sfValidatorDoctrineUnique.class.php
===================================================================
--- 
plugins/sfDoctrinePlugin/branches/1.3-2.0/lib/validator/sfValidatorDoctrineUnique.class.php
 2010-02-07 18:00:50 UTC (rev 27656)
+++ 
plugins/sfDoctrinePlugin/branches/1.3-2.0/lib/validator/sfValidatorDoctrineUnique.class.php
 2010-02-07 18:14:52 UTC (rev 27657)
@@ -93,7 +93,7 @@
       $qb->setParameter($i, $values[$column]);
     }
 
-    $object = $qb->setMaxResults(1)->getQuery()->execute();
+    $object = current($qb->setMaxResults(1)->getQuery()->execute());
 
     // if no object or if we're updating the object, it's ok
     if (!$object || $this->isUpdate($object, $values))
@@ -123,15 +123,17 @@
    */
   protected function isUpdate($object, $values)
   {
+    $primaryKeyVals = 
$this->em->getClassMetadata($this->getOption("model"))->getColumnValues($object,
 $this->getPrimaryKeys());
+    $primaryKeyValArray = array_combine($this->getPrimaryKeys(), 
$primaryKeyVals);
+
     // check each primary key column
     foreach ($this->getPrimaryKeys() as $column)
     {
-      if (!isset($values[$column]) || $object->$column != $values[$column])
+      if (!isset($values[$column]) ||  $primaryKeyValArray[$column] != 
$values[$column])
       {
         return false;
       }
     }
-
     return true;
   }
 

-- 
You received this message because you are subscribed to the Google Groups 
"symfony SVN" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/symfony-svn?hl=en.

Reply via email to