Получить первичный ключ из объекта Zend_Db_Table_Rowset - PullRequest
1 голос
/ 21 марта 2010

внутри моего объекта Zend_Db_Table_Rowset я нашел это:

["_primary:protected"]

... есть кто-нибудь, если есть способ получить к этому доступ? ... может быть что-то вроде

$rowsetObject->getPrimary()

Спасибо за вашу помощь, Alex

Ответы [ 2 ]

2 голосов
/ 21 марта 2010

Zend_Db_Table_Rowset не имеет свойства _primary.Вы ссылаетесь на экземпляр Zend_Db_Table, из которого вы получили набор строк, или экземпляр 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 голосов
/ 21 марта 2010

Поскольку эта переменная защищена, вы можете расширить 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;
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...