summaryrefslogtreecommitdiff
path: root/framework/Data/ActiveRecord/TActiveRecordGateway.php
diff options
context:
space:
mode:
Diffstat (limited to 'framework/Data/ActiveRecord/TActiveRecordGateway.php')
-rw-r--r--framework/Data/ActiveRecord/TActiveRecordGateway.php13
1 files changed, 12 insertions, 1 deletions
diff --git a/framework/Data/ActiveRecord/TActiveRecordGateway.php b/framework/Data/ActiveRecord/TActiveRecordGateway.php
index 40948999..d97844f7 100644
--- a/framework/Data/ActiveRecord/TActiveRecordGateway.php
+++ b/framework/Data/ActiveRecord/TActiveRecordGateway.php
@@ -244,9 +244,11 @@ class TActiveRecordGateway extends TComponent
*/
public function insert(TActiveRecord $record)
{
+ $this->updateAssociatedRecords($record,true);
$result = $this->getCommand($record)->insert($this->getInsertValues($record));
if($result)
$this->updatePostInsert($record);
+ $this->updateAssociatedRecords($record);
return $result;
}
@@ -297,8 +299,11 @@ class TActiveRecordGateway extends TComponent
*/
public function update(TActiveRecord $record)
{
+ $this->updateAssociatedRecords($record,true);
list($data, $keys) = $this->getUpdateValues($record);
- return $this->getCommand($record)->updateByPk($data, $keys);
+ $result = $this->getCommand($record)->updateByPk($data, $keys);
+ $this->updateAssociatedRecords($record);
+ return $result;
}
protected function getUpdateValues(TActiveRecord $record)
@@ -325,6 +330,12 @@ class TActiveRecordGateway extends TComponent
return array($values,$primary);
}
+ protected function updateAssociatedRecords(TActiveRecord $record,$updateBelongsTo=false)
+ {
+ $context = new TActiveRecordRelationContext($record);
+ return $context->updateAssociatedRecords($updateBelongsTo);
+ }
+
/**
* Delete the record.
* @param TActiveRecord record to be deleted.