0

Magento で閲覧した製品のリストを取得しようとしていますが、次のコード:

$model = Mage::getModel('reports/product_index_viewed')->getCollection()
    ->addAttributeToFilter('store_id', array('eq' => 1));

エラーメッセージを作成しました:

致命的なエラー: 816 行目の C:\xampp\htdocs\magento\app\code\core\Mage\Eav\Model\Entity\Abstract.php の非オブジェクトに対するメンバー関数 getBackend() の呼び出し

getCollection() で返されるコレクションがオブジェクトではないのはなぜですか?

4

1 に答える 1

2

フィルター呼び出しにエラーがあります。実際には製品の store_id 属性はありません。この場合、コレクションはこの属性を取得しようとしますが、存在しないためエラーが発生します。レポート コレクションには、ストア フィルターを指定するために作成された特別なメソッドがあるため、コードは次のようになります (適切なタイプ ヒンティングのための構造も含めました)。

/* @var $collection Mage_Reports_Model_Resource_Product_Viewed_Collection */ // This enabled type hinting
$collection = Mage::getModel('reports/product_index_viewed')->getCollection();
$collection->setStoreId($storeId); // Setting data scope (e.g translated names, prices, etc)
$collection->addStoreFilter($storeId); // Set filter by exact availability on this store.

Magento開発を楽しんでください!

于 2012-08-15T10:15:11.120 に答える