既存の属性コードのis_requiredを更新


8

既存の「地域」属性コードのis_requiredデータを「1」に更新することを考えています。

select * From eav_attribute where attribute_id = '28'

しかし、私はここでの慣習は何だろうと思っています。それは単にSQLステートメントを作成し、セットアップスクリプトの特定のレコードを正常に更新するだけですか?あるいは、もっと良い方法があるかもしれません。


どの地域属性ですか?注文または住所について?
Bijal Bhavsar 2014年

注文および住所=)
Leongelis 2014年

回答:


11

SQLスクリプトを作成して領域属性を更新する

$installer->startSetup();
/*** Update customer address attributes*/
$installer->updateAttribute('customer_address', 'region', 'is_required', true); 

/*** Update order address attributes*/
$installer->updateAttribute('order_address', 'region', 'is_required', true);  
$installer->endSetup();

上記のコードが役立つことを願っています


例を挙げて詳しく説明してもらえますか?
Ami Kamboj 14年

4

私はこのアップデートを書いています。これは私の研究を共有するだけであり、誰かがそこに役立つことを願っています。

config.xml

<config>
    <modules>
        <Package_Module>
            <version>0.0.2</version>
        </Package_Module>
    </modules>
    <global>
        <resources>
            <module_setup>
                <setup>
                    <module>Package_Module</module>
                    <!-- 
                     Create a Switchable Installer Script 
                     This class is incredibly handy in case you need different setup classes 
                     -->
                    <class>Package_Module_Model_Resource_Setup</class> 
                </setup>
            </module_setup>
        </resources>
    </global>
<config>

カスタムセットアップクラス:Package_Module_Model_Resource_Setup

class Package_Module_Model_Resource_Setup extends Mage_Core_Model_Resource_Setup
{
    public function getCatalogResourceSetup()
    {
        return new Mage_Catalog_Model_Resource_Setup('module_setup');
    }
    public function getCustomerResourceSetup()
    {
        return new Mage_Customer_Model_Resource_Setup('module_setup');
    }
    public function getCustomerEntitySetup() 
    {
        return new Mage_Customer_Model_Entity_Setup('module_setup');
    }
}

アップグレードスクリプト:mysql4-upgrade-0.0.1-0.0.2.php

<?php
/* @var $installer Package_Module_Model_Resource_Setup */
$installer = $this->getCustomerEntitySetup();

$installer->startSetup();
/*** Update customer address attributes*/
$installer->updateAttribute('customer_address', 'region', 'is_required', 1);

$installer->endSetup();

これにより、「切り替え可能なインストーラースクリプト」について共有したすばらしい記事をご覧いただけます。ソースリンク:inchoo.net


0

SQL更新スクリプトを作成し、updateAttribute関数を実行します。

$installer = $this;
$installer->startSetup();
$installer->updateAttribute('entity_type', 'your_attribute_id', 'required', 1);
$installer->endSetup();

この関数を使用すると、任意の属性のプロパティを更新できます。


0

見つかったスクリプトをいくつか試しましたが、属性はまだ必要でした。正しいパラメーターは「is_required」であり、「required」ではありません。 $installer->updateAttribute('entity_type', 'your_attribute_id', 'is_required', 1);


0

以下のコードは、SQLスクリプトを使用して属性を更新します

$installer = $this;
$this->updateAttribute('customer_address', 'region', 'is_required' ,1); 

0

ファイルにupdateAttribute()関数の定義があります app\code\core\Mage\Eav\Model\Entity\setup.php

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.