0

商品に「ブランド」属性(ドロップダウンリスト)を追加しました。「ブランド」属性の値を使用して、カテゴリに新しい属性 (ドロップダウン リスト) を追加しようとしています。このカテゴリ属性に正しいソースを設定するにはどうすればよいですか? mysql セットアップ ファイルのコードを参照してください。

    $this->startSetup();
    $this->addAttribute('catalog_category', 'brand', array(
    'group'                => 'General',
    'type'              => 'int'
    'backend'           => '',
    'frontend_input'    => '',
    'frontend'          => '',
    'label'             => 'brand',
    'input'             => 'select'
    'class'             => '',
    'source'            => 'mymodule/selecattributes',
    'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'visible'           => true,
    'frontend_class'    => '',
    'required'          => false,
    'user_defined'      => true,
    'default'           => '',
    'position'          => 100,
));
$this->endSetup();

前もって感謝します。

EDIT 1 クラス MyPackage_MyModule_Model_SelectAttributes extends extends Mage_Eav_Model_Entity_Attribute_Source_Abstract を追加しました:

class MyPackage_MyModule_Model_SelectAttributes extends Mage_Eav_Model_Entity_Attribute_Source_Abstract{
    public function getAllOptions()
    {
        $attributeCode = 'brand';

        $attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', $attributeCode); //here, "color" is the attribute_code
        $allOptions = $attribute->getSource()->getAllOptions(true, true);
        foreach ($allOptions as $instance) {
            $myArray[$instance['value']] = $instance['label'];
        }

        return $myArray;
    }
}

EDIT 2 カテゴリ管理ページを開くと、次のエラーが表示されます。

"Source model "mymodule/selectattributes" not found for attribute "brands""
4

1 に答える 1

3

ソース モデルはSelectattributes.php. 大文字と小文字を区別するファイルシステムを使用している場合は、次の 2 つのいずれかを行う必要があります。

  • クラス定義ファイルの名前を次のように変更しますSelectattributes.php

    また

  • ブランド属性のsource_model値を次のように変更しますmymodule/selectAttributes

Magento が属性のソース モデルをインスタンス化しようとしている場合、計算されるクラス名 (したがって autoload インクルード パス) は次のように機能します。

MyPackage_MyModule_Model_Selectattributes
MyPackage/MyModule/Model/Selectattributes.php

ファイル名の問題に注意してください。これは、大文字と小文字を区別しないファイルシステムで機能する必要があることに注意してください。

于 2013-07-19T17:27:47.300 に答える