আসলে 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()
।