您好我已经通过我的模块的设置脚本向表'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}")
,但它也不起作用。
那么,我如何根据集合中的自定义字段进行过滤?感谢
答案 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
作为属性。