我想获得产品的评分(例如,5分中的4分)和产品评论的数量。我可以掌握评论的数量,但不能获得评分。
我是从我的事件观察者类做到的:
$storeId = Mage::app()->getStore()->getId(); // returns 1
$productId = $product->getId(); // returns 135
$summaryData = Mage::getModel('review/review_summary')->setStoreId($storeId)->load($productId); // returns
$reviewsCount = $summaryData->getReviewsCount(); // this works
$ratingSummary = $summaryData->getRatingSummary(); // this does not return the rating score I had hoped it would. It just returns a blank string.
感谢您的帮助。
答案 0 :(得分:3)
您在Magento 1.4.2,1.5.1和1.6.1上测试的代码按预期工作。 与您的代码唯一的区别是我对商店ID和产品ID进行了硬编码。 对带有评论的所有产品进行循环也是如此:
<?php
$products = Mage::getResourceModel('catalog/product_collection');
foreach ($products as $product)
{
$summary = Mage::getModel('review/review_summary')
->setStoreId(Mage::app()->getStore('default')->getId())
->load($product->getId());
if ($summary->getId())
{
echo $summary->getRatingSummary() . "\n";
}
}
您是否在review_entity_summary
表中检查了实体135的预期结果?
答案 1 :(得分:0)
您是否在循环中调用评论代码?如果是这样,请查看_initReviewsHelperBlock
课程中的Mage_Catalog_Block_Product_Abstract
方法。它在第二次初始化时返回false
仍然要确认这是一个错误,但必须重写local
池中的类