2013-12-18 3 views
0

안녕하세요. 올바르게 작동 한 모듈의 설치 스크립트를 통해 'customer_entity'테이블에 두 개의 필드를 추가했습니다.Magento : 컬렉션에 사용자 데이터베이스 필드가로드되지 않습니다.

magento에서 직접 SQL을 사용하여 열을 패치하고 업데이트 할 수 있습니다.

하지만 this-

$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을 추가하는 것이 좋습니다.

관련 문제