Обновление is_required для существующего кода атрибута

8

Я думаю обновить данные is_required до "1" для существующего кода атрибута "Регион".

select * From eav_attribute where attribute_id = '28'

Однако мне интересно, какова практика здесь. Это просто создание оператора SQL и обновление этой конкретной записи в сценарии установки нормально? Или, может быть, есть лучший способ.

Leongelis
источник
Какой регион атрибут? для заказа или адреса?
Биджал Бхавсар
для заказа и адреса =)
Леонгелис
Хорошо, я уже добавил код в ответ ниже :)
Биджал Бхавсар

Ответы:

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();

Надеюсь приведенный выше код поможет

Биджал Бхавсар
источник
Можете ли вы объяснить это в глубине с примером.
Ами Камбой
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();

Настоящая статья, которая поделилась «Switchable Installer Script». Ссылка на источник: inchoo.net

Leongelis
источник
0

Создайте скрипт обновления sql и запустите функцию updateAttribute.

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

С помощью этой функции вы можете обновить свойство любого атрибута.

oleksii.svarychevskyi
источник
0

Я пытался найти несколько сценариев, но атрибут все еще был необходим. Правильный параметр is_required, а не обязательный. $installer->updateAttribute('entity_type', 'your_attribute_id', 'is_required', 1);

Антонио Педичини
источник
0

Ниже код будет обновлять атрибут с использованием сценария SQL

$installer = $this;
$this->updateAttribute('customer_address', 'region', 'is_required' ,1); 
Digisha
источник
0

Вы можете найти определение функции updateAttribute () в файле app\code\core\Mage\Eav\Model\Entity\setup.php

Аджай
источник