Программно получить max attribute_id и max attributeoption_id через API (без SQL-запросов) - PullRequest
0 голосов
/ 23 декабря 2011

уже нашел что-то об этой задаче, но в этих фрагментах, где только SQL-запросы, можно ли получить самый высокий идентификатор атрибута / самый высокий идентификатор атрибута операции

, как, когда я создаю атрибут, он получил attribute_id 11,теперь я использую этот инструмент, не создавая с ним никаких атрибутов -> просто прочитал все доступные атрибуты, а не записал, как я могу получить значение «11», например, с помощью Magento API без запроса базы данных mysql?

, чтобы быть более конкретным: я хочу выполнить итерацию, хотя все существующие атрибуты получают все атрибуты_id, атрибуты_name для вывода

одинаковые для всех параметров атрибута одного атрибута

didn 'Я не нашел ничего полезного, может быть, я искал не то место в Интернете.Надеюсь, кто-нибудь может мне помочь.

1 Ответ

0 голосов
/ 23 декабря 2011

Атрибуты в Magento представлены моделью 'eav / entity_attribute'.Следующий код показывает, как получить к ним доступ.Надеюсь, это то, что вы искали.

/*
 * Initialize Magento.  This assumes that we're running the script from the root
 * directory of a magento installation.  Obviously if you're writing an extension
 * you don't need this.
 */
require_once 'app/Mage.php';
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
Mage::getSingleton("core/session")->setUser(Mage::getModel("admin/user")->load(0));
umask(0);

/*
 * Attributes are represented by the eav/entity_attribute model
 */
$model = Mage::getModel("eav/entity_attribute");
foreach($model->getCollection() as $attr){
    //$attr is a Mage_Eav_Model_Entity_Attribute (see Mage_Eav_Model_Entity_Attribute_Abstract for
    //most of the action).

    //Replace with your attribute processing code
    echo "id={$attr->getId()}, code={$attr->getAttributeCode()},label={$attr->getFrontendLabel()}\n";

    //Check to see if the attribute has options
    if($attr->usesSource()){
        echo "   attribute options";

        //process the options.
        foreach($attr->getSource()->getAllOptions() as $option){
            //Replace with your option processing code.

            $label = $option['label'];
            $value = $option['value'];

            //Normally label is a string and value is an int.  However,
            //some options have sub options.  In this case value is like
            //array( array('label'=>'Label', 'value'=>'...'), ...)
            if(is_array($value)){
                $value = print_r($value, true);
            }
            echo "    $label => $value\n";
        }
    }
}

Некоторые другие полезные вещи, которые вы можете сделать с атрибутами:

//Load an attribute by code/name
Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', 'price');
//Get the attribute set for an attribute
$setId = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', 'price')->getAttributeSetId();
$set   = Mage::getModel('eav/entity_attribute_set')->load($setId);

См. Приложение / код / ​​ядро ​​/ Маг / Eav / Модель / Entity/Attribute.php, app / code / core / Mage / Eav / Model / Entity / Attribute / Abstract.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...