0
<?php Mage::getModel('catalog/category')->getCollection()->addFieldToFilter('children_count','0'); ?>

生成:

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

私は何が欠けていますか?

サンプルデータ未変更の1.7インストールでコードを展開しています

4

2 に答える 2

1

サンプル データ Magento と基本の Magento の両方をインストールした後、フラット カテゴリが有効になっていない場合、このコードはサンプル データ バージョンでのみエラーを生成するようです。

于 2012-05-25T17:37:00.520 に答える
0

私はあなたの質問に答える別の方法を与えます.

製品属性がないための問題children_countです。サンプルの magento サイトに存在しない特定の属性である可能性があります。

その部分を開発するには、フィルターを追加する前に属性が存在するかどうかを最初に確認して、ほとんどの magento サイトでコードが機能しないようにすることをお勧めします。

属性が存在するかどうかを確認します。

	/**
	 * Check if attribute exists before add it to product filter
	 */
	private function _checkIfAttributeExists ($attribCode) {
		$entity = 'catalog_product';
		$attr = Mage::getResourceModel('catalog/eav_attribute')
					->loadByCode($entity, $attribCode);
		
		if ($attr->getId()) {
		    return true;
		}
		
		return false;
	}

このようにして、胎児のエラーを排除できます。

if ($this->_checkIfAttributeExists('children_count')) {
   Mage::getModel('catalog/category')->getCollection()->addFieldToFilter('children_count','0');
}

これは他の人を助けるかもしれません。

于 2016-05-04T07:39:25.573 に答える