Automatically cast field values.
authorJan Schneider <jan@horde.org>
Tue, 12 May 2009 21:58:57 +0000 (23:58 +0200)
committerJan Schneider <jan@horde.org>
Tue, 12 May 2009 21:59:14 +0000 (23:59 +0200)
framework/Rdo/lib/Horde/Rdo/Mapper.php

index 646e847..e18061f 100644 (file)
@@ -199,12 +199,19 @@ abstract class Horde_Rdo_Mapper implements Countable
         }
 
         $relationships = array();
-        foreach ($fields as $fieldName => $fieldValue) {
+        foreach ($fields as $fieldName => &$fieldValue) {
             if (strpos($fieldName, '@') !== false) {
                 list($rel, $field) = explode('@', $fieldName, 2);
                 $relationships[$rel][$field] = $fieldValue;
                 unset($fields[$fieldName]);
             }
+            if (isset($this->fields[$fieldName])) {
+                $fieldName = $this->fields[$fieldName];
+            }
+            $column = $this->tableDefinition->getColumn($fieldName);
+            if ($column) {
+                $fieldValue = $column->typeCast($fieldValue);
+            }
         }
 
         $o = new $this->_classname($fields);