嗨,我通过模块的设置脚本向表"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}")
,但它也不起作用。
那么,如何在集合中按自定义字段进行筛选?感谢
Magento有一个关于EAV实体的奇怪系统
为了正常工作,主表中的列(在您的案例中为customer_entity
)需要有一个静态的对应属性。(除'entity_type_id', 'attribute_set_id', 'created_at', 'updated_at', 'parent_id', 'increment_id'
外均为)
因此,您需要添加一个代码为is_company_admin
的属性。以下是您的操作方法。
唯一的区别是,如果向主表中添加列,则字段type
必须具有值static
我建议删除该列,然后按照上面链接中的教程添加is_company_admin
作为属性。