Magento использует setCurPage для разбиения отзывов на страницы


Я использую расширение allreviews Magento, чтобы у меня была страница со всеми отзывами, однако мне нужно добавить разбивку на страницы на этой странице.

Последний бит, с которым я застрял, по сути, добавляет ограничение к запросу. Я прочитал несколько потоков, в которых говорится, что нужно использовать setCurPage в коллекции, но это, похоже, никак не влияет на запрос?

Когда я пытаюсь определить, что должно быть равно LIMIT 25, 25 и LIMIT 75,25 и т. Д., Я все равно получаю результат от LIMIT 0, 25

Текущий запрос:

//$_GET['product'] = 1;    //product id
$numberOfReviews = 25;     //per page
$page = 3;                 //page

$_reviews = Mage::getModel('review/review')
                        ->getCollection()
                        ->addFieldToFilter('entity_pk_value', $_GET['product'])
                        ->addStoreFilter(Mage::app()->getStore()->getId()) 
                        ->addStatusFilter(Mage_Review_Model_Review::STATUS_APPROVED)
                        ->setDateOrder('desc')
                        ->setPageSize($numberOfReviews)
                        ->addRateVotes()
                        ->setCurPage($page);

Что я делаю не так?

Author: Dan, 2014-12-11

1 answers

Я полагаю, что addRateVotes() загружает коллекцию, попробуйте setCurPage() перед этим вызовом.

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

    public function addRateVotes()
    {
        foreach ($this->getItems() as $item) {
            $votesCollection = Mage::getModel('rating/rating_option_vote')
                ->getResourceCollection()
                ->setReviewFilter($item->getId())
                ->setStoreFilter(Mage::app()->getStore()->getId())
                ->addRatingInfo(Mage::app()->getStore()->getId())
                ->load();
            $item->setRatingVotes($votesCollection);
        }

        return $this;
    }
 2
Author: Luke Rodgers, 2014-12-11 16:41:24