在我的Zend_Db_Table_Rowset对象里面我发现了这个:
["_primary:protected"]
...是否有人可以访问此方法? ......也许像是
$rowsetObject->getPrimary()
感谢您的帮助, 亚历
答案 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;
}
}