L'aggiornamento è richiesto per il codice di attributo esistente


8

Sto pensando di aggiornare i dati is_required a "1" per il codice dell'attributo "Regione" esistente.

select * From eav_attribute where attribute_id = '28'

Tuttavia, mi chiedo quale sia la pratica qui. Sta semplicemente creando un'istruzione SQL e aggiorna bene quel record specifico nello script di installazione? O forse potrebbe esserci un modo migliore.


Quale attributo della regione? per ordine o indirizzo?
Bijal Bhavsar,

per ordine e indirizzo =)
Leongelis,

ok Ho già aggiunto il codice nella risposta di seguito :)
Bijal Bhavsar,

Risposte:


11

Creare uno script sql per aggiornare l'attributo della regione

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

Spero che il codice sopra sia di aiuto


Puoi per favore spiegarlo in profondità con l'esempio.
Ami Kamboj,

4

Sto scrivendo questo aggiornamento è semplicemente condividere la mia ricerca e spero che possa aiutare qualcuno là fuori.

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>

Classe di installazione personalizzata: 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');
    }
}

Script di aggiornamento: 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();

Con la presente un grande articolo che ha condiviso "Script di installazione commutabile". Link alla fonte: inchoo.net


0

Creare uno script sql update ed eseguire la funzione updateAttribute.

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

Con questa funzione è possibile aggiornare qualsiasi proprietà dell'attributo.


0

Stavo provando alcuni script trovati, ma l'attributo era ancora richiesto. Il parametro corretto è 'is_required' e non 'richiesto'. $installer->updateAttribute('entity_type', 'your_attribute_id', 'is_required', 1);


0

Il codice seguente aggiorna l'attributo usando lo script sql

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

0

è possibile trovare la definizione della funzione updateAttribute () nel file app\code\core\Mage\Eav\Model\Entity\setup.php

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.