সমস্ত বৈশিষ্ট্যের একটি তালিকা কীভাবে পাবেন


23

আমি কীভাবে সমস্ত সংজ্ঞায়িত পণ্যের গুণাবলীর একটি তালিকা (অ্যারে) আনতে পারি? (মূলত আমার কোড এবং লেবেল দরকার)।

সম্পাদনা করুন :

দোকানে থাকা সমস্ত পণ্যের বৈশিষ্ট্যের জন্য গতিশীলভাবে এসিএল উত্পন্ন করার জন্য আমার যে বৈশিষ্ট্যগুলির প্রয়োজন এটি। ( পণ্য সম্পাদনা ব্যাকএন্ডে বৈশিষ্ট্য এবং অন্যান্য ক্ষেত্রগুলি লুকান জন্য মডিউলে কাজ করা )


বৈশিষ্ট্য সেট উপেক্ষা করছেন?
বেনমার্কগুলি

@ বেনমার্কস: হ্যাঁ।
অ্যালেক্স

উত্তর:


37

আপনার যদি একটি মাইএসকিউএল ক্যোয়ারী প্রয়োজন হয় তবে এটি ব্যবহার করে দেখুন:

select attribute_id, attribute_code, frontend_label from eav_attribute where entity_type_id IN (select entity_type_id from eav_entity_type where entity_type_code = 'catalog_product')

ফ্যাবিয়ান কোডের বিকল্প, যদি আপনাকে ম্যাজেন্টো ভিত্তিক পিএইচপি স্ক্রিপ্টের প্রয়োজন হয় তবে এটি চেষ্টা করুন:

$attributes = Mage::getResourceModel('catalog/product_attribute_collection')
    ->getItems();

foreach ($attributes as $attribute){
    echo $attribute->getAttributecode();
    echo '<br>';
    echo $attribute->getFrontendLabel();
}

খুশী হলাম। Mage_Catalog_Model_Resource_Product_Attribute_Collectionফ্যাবিয়ান যে কারুকাজ করার চেষ্টা করছিল তা মূলত তা করে। ধন্যবাদ!
অ্যালেক্স

আপনাকে স্বাগতম :-)
সিলভাইন রায়

আমি কীভাবে একটি গ্রুপ আইডি ব্যবহার করে বৈশিষ্ট্যের একটি তালিকা পেতে পারি? বৈশিষ্ট্য সেট নয়
আটটিলা নাগি

5

//Mage_Eav_Model_Mysql4_Entity_Attribute_Collection
Mage::getResourceModel('eav/entity_attribute_collection')->setEntityTypeFilter(Mage_Catalog_Model_Product::ENTITY);

করা উচিত.

আমরা সবেমাত্র একটি বাগ পেয়েছি, আপনাকে সত্তা_প্রকার_আইডিটি পাস করতে হবে:

$col = Mage::getResourceModel('eav/entity_attribute_collection')->setEntityTypeFilter(4);

নেই

কোডটি হ'ল ডকুমেন্টেশন:

if ($type instanceof Mage_Eav_Model_Entity_Type) {
        $additionalTable = $type->getAdditionalAttributeTable();
        $id = $type->getId();
    } else {
        $additionalTable = $this->getResource()->getAdditionalAttributeTable($type);
        $id = $type;
    }

আশাকরি কাজের সমাধান (@ অ্যালেক্স মন্তব্য দ্বারা আপডেট)

আপনাকে এটি পাস করতে হবে Mage_Eav_Model_Entity_Typeযাতে এটি কাজ করা উচিত এবং হার্ডকডযুক্ত নয়:

$type = Mage::getModel('eav/entity_type')->loadByCode(Mage_Catalog_Model_Product::ENTITY)
Mage::getResourceModel('eav/entity_attribute_collection')->setEntityTypeFilter($type);

সংগ্রহটি 0 টি গণনা দেয় ... আমার মনে আছে এর জন্য কোনও প্রকারের API বা পরিষেবা শ্রেণি ছিল, তবে এটি এটিএম খুঁজে পাচ্ছে না।
অ্যালেক্স

দুর্দান্ত - তবে 4 টি হার্ডকোডযুক্ত (এমনকি কোনও পরিবর্তনের সম্ভাবনা নেই)। এটি একটি আপভোটের জন্য ঠিক করুন :-)
অ্যালেক্স

এবং না, প্রথম লাইনটি কাজ করে না। ম্যাজ_গ্যাটালগ_মোডেল_প্রডাক্ট :: ENTITY একটি স্ট্রিং, কোনও ম্যাজ_ইভ_মোডেল_ এন্টিটি টাইপ নয়
অ্যালেক্স

আমি মনে করি এটি এখনই পেয়েছি: ডি
ফ্যাবিয়ান ব্লাচস্মিড্ট

তবে তারপরে আমি দেরি করছি। আমি করব, যখন আমি 2 কে রেপ পাস করব: পি
ফ্যাবিয়ান ব্ল্যাচসমিট

2

এটি সমস্ত বৈশিষ্ট্য পেতে

SELECT
    eav_attribute_option_value.option_id,
    eav_attribute_option_value.`value`,
    eav_attribute_option.attribute_id
                FROM
                        eav_attribute_option_value
                INNER JOIN eav_attribute_option ON eav_attribute_option_value.option_id = eav_attribute_option.option_id
                WHERE
                        eav_attribute_option.attribute_id = 135
                OR eav_attribute_option.attribute_id = 142 
                -- 135 = BRANDS
                -- 142 = TYPES
                GROUP BY
                        eav_attribute_option_value.option_id
                ORDER BY
                eav_attribute_option_value.`value` ASC

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