Intereting Posts
Создание правил для поля кода, если это поле не отключено Работа со старыми датами для нескольких столбцов Apigility – Как использовать модуль ORM Doctrine из командной строки ZF2 PHP-скрипт для выполнения сценария bash Пользовательский рендеринг Zend Как я могу установить cookie, а затем перенаправить на PHP? preg_replace_callback () – Откат внутри экземпляра текущего объекта Управлять фатальными ошибками в PHP с помощью register_shutdown_function () Значение Unset Array для PHP Вход в Joomla 1.5 Использование внешней формы (не в папке joomla, но на том же сервере) PHP MVC: шаблон Data Mapper: дизайн класса как сохранить <br/> теги при использовании Dom в php для анализа html-документа? Получите ВСЕ возможные результаты из смесительного массива Как случайным образом извлекать изображения из моей базы данных mysql? Как можно разделить результаты поиска на вкладки «Типы сообщений» на Frontend?

Как ограничить количество результатов в Magento?

У меня есть недавние действия с продуктами в моих контроллерах Catalog / Product.

Я извлекаю весь продукт, отсортированный по идентификатору объекта. Отлично работает.

Проблема в том, что я просто хочу показать 20 продуктов на 4 страницах.

Я попытался расширить Mage_Catalog_Block_Product_List и переопределить _getProductCollection() и я сделал что-то вроде этого:

 $this->_productCollection = Mage::getModel('catalog/product')->getCollection() ->addAttributeToSort('entity_id', 'desc') ->addStoreFilter(); 

И важная часть:

 $this->_productCollection->getSelect()->limit($this->getProductsLimit()); 

Если я «сбрасываю» возвращаемый объект, у меня есть что-то вроде этого:

["limitcount"] => int (5) ["limitoffset"] => int (0)

Таким образом, он выглядит чрезмерно сложным.

Знаете ли вы способ ограничить количество результатов?

Для оптимизации и представления я фактически не хочу получать всю коллекцию продуктов.

спасибо

Related of "Как ограничить количество результатов в Magento?"

Это должно работать …

 $this->_productCollection = Mage::getModel('catalog/product')->getCollection() ->addAttributeToSort('entity_id', 'desc') ->addStoreFilter() ->setPage($pageNum, $pageSize); // only retrieve 10 products $this->_productCollection = Mage::getModel('catalog/product')->getCollection() ->addAttributeToSort('entity_id', 'desc') ->addStoreFilter() ->setPage(0, 10); 

Попробуй это

$this->_productCollection = Mage::getModel('catalog/product')->getCollection() ->setPageSize(20) ->setCurPage(1);

Другой, в равной степени действительный способ:

 $this->_productCollection->setPageSize($this->getProductsLimit()); 

Выберите 20 продуктов: –

 $this->_productCollection = Mage::getModel('catalog/product')->getCollection() ->addAttributeToSort('entity_id', 'desc') ->addStoreFilter() ->setPageSize(20); 

Попробуйте это после получения коллекции:

$this->_productCollection->getSelect()->limit( 20 );