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/TActiveRecordGateway.php | |
parent | c1bddf3826ec570ea4c58d7a56c410ae54d26508 (diff) |
Add saving/updating ActiveRecord relationships.
Diffstat (limited to 'framework/Data/ActiveRecord/TActiveRecordGateway.php')
-rw-r--r-- | framework/Data/ActiveRecord/TActiveRecordGateway.php | 13 |
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.
|