답변:
addAttributeToFilter() EAV 수집을 필터링하는 데 사용됩니다.
addFieldToFilter() 비 EAV 모음을 필터링하는 데 사용됩니다.
EAV 모델은 예를 들어 제품, 고객, 판매 등이므로 addAttributeToFilter()해당 엔터티에 사용할 수 있습니다 .
addFieldToFilter()addAttributeToFilter()EAV 엔터티에 매핑됩니다 . 그래서 당신은 사용할 수 있습니다 addFieldToFiler().
편집하다:
app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php매핑이 수행되는 위치를 살펴볼 수 있습니다 .
public function addFieldToFilter($attribute, $condition = null) {
return $this->addAttributeToFilter($attribute, $condition);
}
addAttributeToSelect()의 SELECT일부입니다. 쿼리 부분에 대한 참조 이며 특정 열만 선택합니다. addFAttributeToFilter()컬렉션을 필터링하는 데 사용되며 WHERE부품에 추가됩니다 .
EAV와 관련하여 차이는 없습니다.
/app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php
public function addFieldToFilter($attribute, $condition = null)
{
return $this->addAttributeToFilter($attribute, $condition);
}
내가 잘못 생각할 수도 있지만 EAV의 경우 필터링 할 각 속성이 자체 설정 등이있는 독립형 항목이므로 속성 이름 지정을 사용한다고 가정합니다. 데이터베이스 테이블과 이름 필드는 잘 작동합니다.
addAttributeToSelect()대를addAttributeToFilter()?