실제로 getAllIds
가장 좋은 방법입니다. 예를 들어 제품 콜렉션 자원 모델에서 메소드는 다음과 같습니다.
public function getAllIds($limit = null, $offset = null)
{
$idsSelect = $this->_getClearSelect();
$idsSelect->columns('e.' . $this->getEntity()->getIdFieldName());
$idsSelect->limit($limit, $offset);
$idsSelect->resetJoinLeft();
return $this->getConnection()->fetchCol($idsSelect, $this->_bindParams);
}
따라서 모든 것이 단일 선택에서 검색되며 반복이 필요하지 않습니다. 또한 추상 자원 모델에서는 다음과 같습니다.
public function getAllIds()
{
$idsSelect = clone $this->getSelect();
$idsSelect->reset(Zend_Db_Select::ORDER);
$idsSelect->reset(Zend_Db_Select::LIMIT_COUNT);
$idsSelect->reset(Zend_Db_Select::LIMIT_OFFSET);
$idsSelect->reset(Zend_Db_Select::COLUMNS);
$idsSelect->columns($this->getResource()->getIdFieldName(), 'main_table');
return $this->getConnection()->fetchCol($idsSelect);
}
따라서 Mage_Core_Model_Resource_Db_Collection_Abstract
달리 지정하지 않는 한 확장하는 모든 것을 사용해야합니다.
당신이 본 방법은 기본 클래스에서 Varien_Data_Collection
나오지만 자식 클래스 에서 덮어 씁니다.
$this->_getClearSelect()
.