Magento按属性错误过滤自定义EAV

时间:2016-01-05 22:01:39

标签: magento entity-attribute-value

我无法过滤自定义的eav集合,否则会正常执行:

$mymodel = Mage::getModel('mymodel/things');
$collection = $mymodel->getCollection()
    ->addAttributeToSelect('*');

对过滤集合进行了各种尝试,例如:

$collection->addFieldToFilter('my_attribute','1');

$collection->addAttributeToFilter('my_attribute', array('like' => '1'));

我尝试的任何内容都会抛出此错误:

Invalid method Mage_Eav_Model_Entity_Attribute::isScopeGlobal(Array
(
)
)

#0 C:\wamp\www\magento\app\code\core\Mage\Catalog\Model\Resource\Collection\Abstract.php(186): Varien_Object->__call('isScopeGlobal', Array)
#1 C:\wamp\www\magento\app\code\core\Mage\Catalog\Model\Resource\Collection\Abstract.php(186): Mage_Eav_Model_Entity_Attribute->isScopeGlobal()

提前感谢您提出任何建议和指示。

更新:

黑客攻击以下内容 - > addAttributeToFilter正常工作。仍需要适合自定义模型的解决方案。谢谢。

Mage_Catalog_Model_Resource_Collection_Abstract:  **Hacked**
Line186  if ($store_id != $this->getDefaultStoreId() ){ //&& !$attribute->isScopeGlobal()) {

1 个答案:

答案 0 :(得分:0)

主要问题是在我的自定义模型资源集合类中扩展了错误的类:

was:  ... extends Mage_Catalog_Model_Resource_Collection_Abstract
now:  ... extends Mage_Eav_Model_Entity_Collection_Abstract