From 429e20f85c5d1f633fa64bacfc4b8b2426147487 Mon Sep 17 00:00:00 2001 From: wei <> Date: Fri, 30 Mar 2007 07:38:07 +0000 Subject: Fixed #537 --- framework/Data/ActiveRecord/Scaffold/TScaffoldBase.php | 1 - framework/Data/ActiveRecord/TActiveRecordManager.php | 11 +++++++++++ framework/Data/ActiveRecord/Vendor/TDbMetaData.php | 11 ++++++++--- 3 files changed, 19 insertions(+), 4 deletions(-) (limited to 'framework') diff --git a/framework/Data/ActiveRecord/Scaffold/TScaffoldBase.php b/framework/Data/ActiveRecord/Scaffold/TScaffoldBase.php index 4e96a19d..266d4346 100644 --- a/framework/Data/ActiveRecord/Scaffold/TScaffoldBase.php +++ b/framework/Data/ActiveRecord/Scaffold/TScaffoldBase.php @@ -73,7 +73,6 @@ abstract class TScaffoldBase extends TTemplateControl */ protected function getRecordPkValues($record) { - $pk = array(); foreach($this->getTableMetaData()->getColumns() as $name=>$column) { if($column->getIsPrimaryKey()) diff --git a/framework/Data/ActiveRecord/TActiveRecordManager.php b/framework/Data/ActiveRecord/TActiveRecordManager.php index f7568b51..0179479e 100644 --- a/framework/Data/ActiveRecord/TActiveRecordManager.php +++ b/framework/Data/ActiveRecord/TActiveRecordManager.php @@ -120,6 +120,17 @@ class TActiveRecordManager extends TComponent return $this->_gateway; } + /** + * @param string|TActiveRecord active record class name or instance + * @return TDbMetaData record specific meta data + */ + public function getMetaData($record) + { + if(is_string($record)) + $record = TActiveRecord::finder($record); + return $this->getRecordGateway()->getMetaData($record); + } + /** * @return TActiveRecordGateway default record gateway. */ diff --git a/framework/Data/ActiveRecord/Vendor/TDbMetaData.php b/framework/Data/ActiveRecord/Vendor/TDbMetaData.php index a3a13120..37537548 100644 --- a/framework/Data/ActiveRecord/Vendor/TDbMetaData.php +++ b/framework/Data/ActiveRecord/Vendor/TDbMetaData.php @@ -25,7 +25,12 @@ abstract class TDbMetaData extends TComponent { private $_primaryKeys=array(); private $_foreignKeys=array(); - private $_columns=array(); + + /** + * @var TMap column meta data. + */ + private $_columns; + private $_table; private $_isView=false; @@ -39,7 +44,7 @@ abstract class TDbMetaData extends TComponent public function __construct($table, $cols, $pk, $fk=array(),$view=false) { $this->_table=$table; - $this->_columns=$cols; + $this->_columns=new TMap($cols); $this->_primaryKeys=$pk; $this->_foreignKeys=$fk; $this->_isView=$view; @@ -92,7 +97,7 @@ abstract class TDbMetaData extends TComponent public function getColumnNames() { - return array_keys($this->_columns); + return $this->_columns->getKeys(); } /** -- cgit v1.2.3