From 8708f7e88e423b44ea4b3b8fff14f055d2b5c4ac Mon Sep 17 00:00:00 2001 From: wei <> Date: Fri, 4 May 2007 08:37:12 +0000 Subject: Add saving/updating ActiveRecord relationships. --- framework/Data/ActiveRecord/TActiveRecordGateway.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'framework/Data/ActiveRecord/TActiveRecordGateway.php') 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. -- cgit v1.2.3