diff options
author | wei <> | 2007-05-04 08:37:12 +0000 |
---|---|---|
committer | wei <> | 2007-05-04 08:37:12 +0000 |
commit | 8708f7e88e423b44ea4b3b8fff14f055d2b5c4ac (patch) | |
tree | f468f8990c7675089f804914453ba994d0c1be30 /framework/Data/ActiveRecord/Relations/TActiveRecordHasOne.php | |
parent | c1bddf3826ec570ea4c58d7a56c410ae54d26508 (diff) |
Add saving/updating ActiveRecord relationships.
Diffstat (limited to 'framework/Data/ActiveRecord/Relations/TActiveRecordHasOne.php')
-rw-r--r-- | framework/Data/ActiveRecord/Relations/TActiveRecordHasOne.php | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/framework/Data/ActiveRecord/Relations/TActiveRecordHasOne.php b/framework/Data/ActiveRecord/Relations/TActiveRecordHasOne.php index 6348f16b..7127d2ac 100644 --- a/framework/Data/ActiveRecord/Relations/TActiveRecordHasOne.php +++ b/framework/Data/ActiveRecord/Relations/TActiveRecordHasOne.php @@ -119,6 +119,25 @@ class TActiveRecordHasOne extends TActiveRecordRelation $source->{$prop} = $collections[$hash][0];
}
}
+
+ /**
+ * Updates the associated foreign objects.
+ * @return boolean true if all update are success (including if no update was required), false otherwise .
+ */
+ public function updateAssociatedRecords()
+ {
+ $fkObject = $this->getContext()->getPropertyValue();
+ $registry = $fkObject->getRecordManager()->getObjectStateRegistry();
+ if($registry->shouldPersistObject($fkObject))
+ {
+ $source = $this->getSourceRecord();
+ $fkeys = $this->findForeignKeys($fkObject, $source);
+ foreach($fkeys as $fKey => $srcKey)
+ $fkObject->{$fKey} = $source->{$srcKey};
+ return $fkObject->save();
+ }
+ return true;
+ }
}
?>
\ No newline at end of file |