从Zend_Db_Table_Rowset对象中获取主键

时间:2010-03-21 15:10:39

标签: zend-framework

在我的Zend_Db_Table_Rowset对象里面我发现了这个:

["_primary:protected"]

...是否有人可以访问此方法? ......也许像是

$rowsetObject->getPrimary()

感谢您的帮助, 亚历

2 个答案:

答案 0 :(得分: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();
    }
}

答案 1 :(得分: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;
   }
}