Magento:自定义数据库字段未在集合中加载

时间:2013-12-18 06:08:04

标签: php database magento collections entity-attribute-value

您好我已经通过我的模块的设置脚本向表'customer_entity'添加了两个字段,该字体工作正常。

我可以使用magento中的直接sql来获取和更新列。

但是当我加载这样的客户集合时 -

$collection = Mage::getModel('customer/customer')->getCollection()->addAttributeToSelect('*')->addFieldToFilter('group_id',4); //->addFieldToFilter('is_company_admin',0);

集合加载但是当我添加注释部分时,它显示错误,可能因为该字段不是集合的一部分,尽管它是数据库字段??

我在收集后尝试了这个->getSelect()->where("is_company_admin=0 and company_id={$current_company_id}"),但它也不起作用。

那么,我如何根据集合中的自定义字段进行过滤?感谢

1 个答案:

答案 0 :(得分:0)

Magento对EAV实体有一个奇怪的系统 为了正常工作,主表中的列(在您的情况下为customer_entity)需要具有静态对应属性。 (除'entity_type_id', 'attribute_set_id', 'created_at', 'updated_at', 'parent_id', 'increment_id'外) 因此,您需要添加代码为is_company_admin的属性。 Here is how you can do that
唯一的区别是,如果您向主表添加了一列,则字段type必须具有值static
我建议删除该列,只需按照上面链接中的教程添加is_company_admin作为属性。