Aktualisierung ist für vorhandenen Attributcode erforderlich


8

Ich denke, is_required-Daten für den vorhandenen Attributcode "Region" auf "1" zu aktualisieren.

select * From eav_attribute where attribute_id = '28'

Ich frage mich jedoch, was hier üblich ist. Wird einfach eine SQL-Anweisung erstellt und dieser bestimmte Datensatz im Setup-Skript in Ordnung aktualisiert? Oder vielleicht gibt es einen besseren Weg.


Welches Regionsattribut? für Bestellung oder Adresse?
Bijal Bhavsar

für Bestellung und Adresse =)
Leongelis

ok Ich habe bereits Code in der folgenden Antwort hinzugefügt :)
Bijal Bhavsar

Antworten:


11

Erstellen Sie ein SQL-Skript, um das Regionsattribut zu aktualisieren

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

Ich hoffe, dass der obige Code hilft


Können Sie es bitte anhand eines Beispiels ausführlich erläutern?
Ami Kamboj

4

Ich schreibe diese Updates, teile einfach meine Forschungen und hoffe, dass jemand da draußen helfen kann.

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>

Benutzerdefinierte Setup-Klasse: 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');
    }
}

Upgrade-Skript: 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();

Hiermit ein großartiger Artikel über 'Switchable Installer Script'. Quelllink : inchoo.net


0

Erstellen Sie ein SQL-Aktualisierungsskript und führen Sie die Funktion updateAttribute aus.

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

Mit dieser Funktion können Sie die Eigenschaften eines beliebigen Attributs aktualisieren.


0

Ich habe versucht, einige Skripte zu finden, aber das Attribut war immer noch erforderlich. Der richtige Parameter ist 'is_required' und nicht 'required'. $installer->updateAttribute('entity_type', 'your_attribute_id', 'is_required', 1);


0

Der folgende Code aktualisiert das Attribut mithilfe eines SQL-Skripts

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

0

Die Definition der Funktion updateAttribute () finden Sie in der Datei app\code\core\Mage\Eav\Model\Entity\setup.php

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.