2010-03-21 51 views
1

我Zend_Db_Table_Rowset對象的內部,我發現這個:獲取主鍵列Zend_Db_Table_Rowset對象

["_primary:protected"] 

...如果沒有人孤單的方式來訪問呢? ......也許像

$rowsetObject->getPrimary() 

感謝您的幫助, 亞歷

回答

2

Zend_Db_Table_Rowset沒有財產_primary。您所指的是您獲得Rowset的Zend_Db_Table實例或Rowset中的Zend_Db_Table_Row實例。

爲了得到從Zend_Db_Table實例的主鍵,你可以這樣做:

$tableInstance->info('primary') 

對於從Zend_Db_Table_Row實例獲取主鍵就可以得到表實例並在其上調用info()

$rowInstance->getTable()->info('primary') 

請注意,當該行斷開連接時,這不起作用,因爲getTable()將返回null

或者,使用自定義時Zend_Db_Table_Row您可以添加代理到_getPrimaryKey()的方法:

class My_Db_Table_Row extends Zend_Db_Table_Row 
{ 
    public function getPrimaryKey() 
    { 
     return $this->_getPrimaryKey(); 
    } 
} 
+0

謝謝... :-)工程就像一個魅力 – 2010-03-21 15:36:07

0

由於這個變量是受保護的,可以延長Zend_Db_Table_Rowset和定義getPrimary()函數自己,例如

class My_Zend_Db_Table_Rowset extends Zend_Db_Table_Rowset { 
//put your code here 

    function getPrimary() { 
     return $this->_primary; 
    } 
}