2013-04-05 3 views
0

나는Zend_Db_Table_Row_Abstract에서 행을 삭제 한 후 refresh()를 호출하면 어떻게됩니까?

Zend_Db_Table_Row_Abstractrefresh 방법에 대한 설명서는 말한다 젠드 프레임 워크 버전 1.x를 사용하고 있습니다 :

Refreshes properties from the database. 

내 질문 행이 삭제 된 경우이 메소드가 리턴 것입니다 그동안 데이터베이스 (즉, 다른 프로세스에 의해)?

null을 반환하거나 예외를 throw하여 해당 상황을 처리 할 수 ​​있습니까?

감사합니다, 야콥 $row === nullException을 반환하는 경우

+0

쉽게 테스트 할 수 있습니다. 결과를 알려주세요. 아니? 나는 결과가'false' 또는'NULL' 일 것이라고 생각한다. – JoDev

+0

아무도 나를 때리지 않으면 ;-) – jgivoni

+0

내 마음에 새로 고침 행의 기본 열에 의해 찾을 수 있습니다 ... – JoDev

답변

1

먼저 resfresh() 그냥 _refresh()를 호출합니다.

protected function _refresh() 
    { 
     $where = $this->_getWhereQuery(); 
     $row = $this->_getTable()->fetchRow($where); 

     if (null === $row) { 
      require_once 'Zend/Db/Table/Row/Exception.php'; 
      throw new Zend_Db_Table_Row_Exception('Cannot refresh row as parent is missing'); 
     } 

     $this->_data = $row->toArray(); 
     $this->_cleanData = $this->_data; 
     $this->_modifiedFields = array(); 
    } 
+0

"예외 예외"는 소스 코드에서 옳은 답변처럼 들립니다. '부모가 누락 된 행을 새로 고칠 수 없습니다.'는 것은 링크 된 테이블의 종속 행이 누락 된 경우 새로 고침도 실패합니다. – jgivoni

관련 문제