Получить случайный отзыв в magento не работает из-за кеша

I am trying to display random testimonials, but due to magento cache the random is not working, i have to flush the cache each time to see the testimonials change, my code

 public function getTestimonialsLast(){
        $collection = Mage::getModel('testimonial/testimonial')->getCollection();
        $collection->getSelect()->order(new Zend_Db_Expr('RAND()'));
        $collection->addFieldToFilter('status',1);
        $collection->setPageSize(5);
        return $collection;
    }

как я могу заставить это работать, как я могу сделать так, чтобы всякий раз, когда страница обновлялась, коллекция была случайной. Любая помощь с благодарностью. Заранее спасибо,

2 ответа

Решение

Одна возможность в файле представления:

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

<?php echo $this->getChildHtml('testimonials', false) ?>

Потому что

Method Summary 
string getChildHtml ([string $name = ‘’], [boolean $useCache = true], [ $sorted = true])

Или вы можете добавить время жизни кэша к вашему классу отзывов:

public function getCacheLifetime() { return null; }

Кешируете ли вы блок внутри модуля public function __construct()

Это будет иметь информацию о "cache_lifetime"

Удаление блока кэша предотвратит его кэширование и будет выполнять новый вызов каждый раз.

Другие вопросы по тегам