답변:
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()
?