カスタム製品の複数選択属性が管理者に保存されない


8

カスタム製品の複数選択属性を正常に作成しました。

しかし、adminで製品を編集し、multiselect属性のいくつかのオプション(国)を選択すると、[Save]をクリックすると、正常に保存されます。

しかし、同じ製品をもう一度開くと、選択したオプションの前に表示されません。つまり、カスタム製品属性が製品モデルに保存されません。

あなたは誰かを助けてください。私はとても疲れています。そして私は何時間も試しました。そして私はここに配置します。

etc / config.xmlファイル

<config>
    <modules>
        <Exinent_Shiplimit>
            <version>0.1.0</version>
        </Exinent_Shiplimit>
    </modules>

    <global>
    <models>
       <checkout>
         <rewrite>
           <type_onepage>Exinent_Shiplimit_Model_Checkout_Type_Onepage</type_onepage>
         </rewrite>
        </checkout>
      </models>
    <resources>
            <exinent_shiplimit_setup>
                <setup>
                    <module>Exinent_Shiplimit</module>
                    <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
                </setup>
            </exinent_shiplimit_setup>
        </resources>
    </global>
    </config>

app \ code \ local \ Exinent \ Shiplimit \ sql \ exinent_shiplimit_setup \ mysql4-install-0.1.0.php

<?php 
$installer = $this;
/* @var $installer Mage_Catalog_Model_Resource_Eav_Mysql4_Setup */

$installer->startSetup();
$installer->addAttribute(
    'catalog_product',
    'custom_countries', 
    array(
        'group'             => 'General',
        'type'              => 'varchar',
        'backend'           => '',
        'user_defined' => '1',
        'frontend'          => '',
        'label'             => 'Shipping Restricted Countries',
        'input'             => 'multiselect',
        'source'            => 'Mage_Catalog_Model_Product_Attribute_Source_Countryofmanufacture',
        'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE

    )
);

$installer->updateAttribute('catalog_product', 'custom_countries', 'backend_model', '');
$installer->endSetup();
?>

回答:


16

あなたは、設定しているbackend_model''、それがあるべき'eav/entity_attribute_backend_array'

また、varcharにはソースモデルに必要な制限よりも低い制限があるため、タイプをtextnot として定義するvarchar必要があります。

eav_attribute参考のために表を見てください。

お役に立てれば。


「backend_model」ではなく「backend」にすぎないと思います
Aphroz

4
addAttributeセットアップスクリプトで使用している場合は、「バックエンド」です。他のすべての場合(updateAttributeまたはデータベースで直接)、それは「backend_model」です。
Andreas von Studnitz 2016年

1
素敵な説明で完璧な答え!!! +1 :)
SagarPPanchal

プログラムで値を設定する方法は?
jafar pinjar

@jafarpinjarどの値を具体的に設定しようとしていますか?
B00MER
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.