Magento: ResourceModels выдает исключения - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь отобразить общее количество продаж для просматриваемого в данный момент продукта в блоке с помощью потока stackoverflow:

    $product = Mage::registry('current_product')->getId();
$productID = Mage::getModel('catalog/product')->load($product)->getId();
$productReport = Mage::getResourceModel('reports/product_sold_collection')->addOrderedQty()->addAttributeToFilter('id',$productID);
 foreach ($productReport as $product) {
    $product1 = $product->getOrderedQty();
    var_dump($product1);
}  

Я могучтобы загрузить все объемы продаж, но когда я добавляю addAttributeToFilter

 Fatal error: Call to a member function getBackend() on a non-object in C:\wamp\www\magento\app\code\core\Mage\Eav\Model\Entity\Abstract.php on line 816  

Это также происходит, если я передаю $ product напрямую, хотя оба являются строками.я не знаю, как получить объект, который я должен передать в метод addAttributeToFilter, или если он должен работать со строковым параметром.

1 Ответ

2 голосов
/ 02 марта 2012

Сам не пробуя, я подозреваю, что вам нужно отфильтровать по entity_id (и ваша вторая строка избыточна).

$product = Mage::registry('current_product');
$productReport = Mage::getResourceModel('reports/product_sold_collection')
    ->addAttributeToFilter('entity_id', $product->getId())
    ->addOrderedQty();
$qty = $productReport->getFirstItem()->getOrderedQty();

РЕДАКТИРОВАТЬ: для коллекций товаров и категорий также есть метод addIdFilter()цель, например
->addIdFilter($product->getId())
Подробнее см. Mage_Catalog_Model_Resource_Product_Collection::addIdFilter().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...