অ্যাডট্রিবিউটটোফিল্টার () বনাম অ্যাডফিল্ডটোফিল্টার () এর পার্থক্য কী?


21

আমি অ্যাডট্রিবিউটটোফিল্টার () এবং অ্যাডফিল্ডটোফিল্টার () ফাংশনগুলির পার্থক্য কী তা নিয়ে কিছুটা বিভ্রান্ত হয়ে পড়েছি। আমি ম্যাজেন্টোতে মূল ফাইলগুলি পরীক্ষা করেছিলাম। তবে আমি একটি পরিষ্কার ধারণা বের করতে পারিনি। কারণ ম্যাজেন্টোতে কিছু সংকলনের জন্য অ্যাডঅ্যাট্রিবিউটটোফিল্টার () ব্যবহার করা হয়েছে এবং কিছু অ্যাডফিল্ডটোফিল্টার ব্যবহার করেছেন। দয়া করে এ সম্পর্কে কোনও ব্যাখ্যা একটি দুর্দান্ত সহায়তা হবে। আগাম ধন্যবাদ.

উত্তর:


45

addAttributeToFilter() EAV সংগ্রহগুলি ফিল্টার করতে ব্যবহৃত হয়।

addFieldToFilter() নন-ইএভি সংগ্রহগুলি ফিল্টার করতে ব্যবহৃত হয়।

EAV- মডেলগুলি উদাহরণস্বরূপ পণ্য, গ্রাহক, বিক্রয় ইত্যাদি so যাতে আপনি 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);
}

চমৎকার উত্তর। সাবাস। এটি আমাকে জিনিসগুলি কোথায় তা নির্ধারণের অনুমতি দেয়। এটি আমাকে অবহিত করে যে একটি EAV এর সাথে ব্যবহারযোগ্য, এমনকি যদি এটি নন EAV কেও পরিচালনা করতে পারে। এটি কার্যক্ষম, এবং এটি পাঠকদের আরও নির্দিষ্ট করে তোলার সরঞ্জাম দেয়, কেবল এই নির্দিষ্ট প্রশ্নের উত্তর নয়। addAttributeToSelect()বনাম মধ্যে পার্থক্য সম্পর্কে একটি প্রশ্নের উত্তর দিতে আপনার আপত্তি হবে addAttributeToFilter()?
আহ্নবিজক্যাড

1
পার্থক্যটি হ'ল এসকিউএল এর যে অংশটি ক্ষতিগ্রস্থ হয়েছিল: একটি প্রশ্নের অংশের addAttributeToSelect()উল্লেখ SELECTএবং কেবলমাত্র নির্দিষ্ট কোলাম নির্বাচন করে। addFAttributeToFilter()একটি সংগ্রহ ফিল্টার করতে ব্যবহৃত হয় এবং তার WHEREঅংশে যুক্ত হয় ।
আনা ভলক্ল

3

EAV র সাথে কোনও পার্থক্য নেই।

/app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php
public function addFieldToFilter($attribute, $condition = null)
{
    return $this->addAttributeToFilter($attribute, $condition);
}

আমার ধারণা, যদিও আমি ভুল হতে পারি, এটি হ'ল যে EAV এর জন্য তারা বৈশিষ্ট্যটির নামকরণকে ফিল্টার করার জন্য প্রতিটি বৈশিষ্ট্যটি নিজের মধ্যে একটি স্ট্যান্ড একা আইটেমের নিজস্ব সেটিংস ইত্যাদি থাকে যেখানে EAV ব্যবহার না করার সময় এটি কেবল অন্য কলামে থাকে একটি ডাটাবেস টেবিল এবং তাই নাম ফিল্ডটি ভাল কাজ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.