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.