diff options
author | wei <> | 2007-03-30 07:38:07 +0000 |
---|---|---|
committer | wei <> | 2007-03-30 07:38:07 +0000 |
commit | 429e20f85c5d1f633fa64bacfc4b8b2426147487 (patch) | |
tree | 47f5feecc139fb7dd10e5749e280bb8a54744e71 /framework/Data | |
parent | 96c0b5c35463387664db3fa69898d54a929eaa2a (diff) |
Fixed #537
Diffstat (limited to 'framework/Data')
-rw-r--r-- | framework/Data/ActiveRecord/Scaffold/TScaffoldBase.php | 1 | ||||
-rw-r--r-- | framework/Data/ActiveRecord/TActiveRecordManager.php | 11 | ||||
-rw-r--r-- | framework/Data/ActiveRecord/Vendor/TDbMetaData.php | 11 |
3 files changed, 19 insertions, 4 deletions
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 @@ -121,6 +121,17 @@ class TActiveRecordManager extends TComponent }
/**
+ * @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.
*/
protected function createRecordGateway()
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();
}
/**
|