Получить случайный отзыв в 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"
Удаление блока кэша предотвратит его кэширование и будет выполнять новый вызов каждый раз.