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


Magento : Custom database field not loading in collection

嗨,我通过模块的设置脚本向表"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作为属性。