回答:
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()vs の違いに関する質問に答えていただけますaddAttributeToFilter()か?