2013-12-18 48 views
0

您好我已经通过我的模块的安装脚本,表中'customer_entity'添加了两个领域,工作正常。Magento:自定义数据库字段不加载集合

我可以使用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

尝试使用类似'$ collection-> addFieldToFilter('is_company_admin',array('eq'=> 0));' – Zaheerabbas

+0

@MagentoUser这样做也不起作用 –

回答

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添加为上面链接中教程后的属性。