既存の「地域」属性コードのis_requiredデータを「1」に更新することを考えています。
select * From eav_attribute where attribute_id = '28'
しかし、私はここでの慣習は何だろうと思っています。それは単にSQLステートメントを作成し、セットアップスクリプトの特定のレコードを正常に更新するだけですか?あるいは、もっと良い方法があるかもしれません。
既存の「地域」属性コードのis_requiredデータを「1」に更新することを考えています。
select * From eav_attribute where attribute_id = '28'
しかし、私はここでの慣習は何だろうと思っています。それは単にSQLステートメントを作成し、セットアップスクリプトの特定のレコードを正常に更新するだけですか?あるいは、もっと良い方法があるかもしれません。
回答:
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();
上記のコードが役立つことを願っています
私はこのアップデートを書いています。これは私の研究を共有するだけであり、誰かがそこに役立つことを願っています。
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
SQL更新スクリプトを作成し、updateAttribute関数を実行します。
$installer = $this;
$installer->startSetup();
$installer->updateAttribute('entity_type', 'your_attribute_id', 'required', 1);
$installer->endSetup();
この関数を使用すると、任意の属性のプロパティを更新できます。
見つかったスクリプトをいくつか試しましたが、属性はまだ必要でした。正しいパラメーターは「is_required」であり、「required」ではありません。
$installer->updateAttribute('entity_type', 'your_attribute_id', 'is_required', 1);