La mise à jour est requise pour le code d'attribut existant


8

Je pense mettre à jour les données is_required à "1" pour le code d'attribut "Region" existant.

select * From eav_attribute where attribute_id = '28'

Cependant, je me demande quelle est la pratique ici. Est-ce simplement la création d'une instruction SQL et la mise à jour de cet enregistrement spécifique dans le script d'installation? Ou peut-être existe-t-il un meilleur moyen.


Quelle région attribuer? pour une commande ou une adresse?
Bijal Bhavsar

pour l'ordre et l'adresse =)
Leongelis

ok j'ai déjà ajouté du code dans la réponse ci-dessous :)
Bijal Bhavsar

Réponses:


11

Créer un script SQL pour mettre à jour l'attribut de région

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

J'espère que le code ci-dessus vous aidera


Pouvez-vous s'il vous plaît l'expliquer en profondeur avec un exemple.
Ami Kamboj

4

J'écris ces mises à jour, c'est simplement partager mes recherches et j'espère pouvoir aider quelqu'un là-bas.

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 d'installation personnalisée: 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 de mise à niveau: 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();

Voici un excellent article qui a partagé sur «Script d'installation commutable». Lien source: inchoo.net


0

Créez un script de mise à jour SQL et exécutez la fonction updateAttribute.

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

Avec cette fonction, vous pouvez mettre à jour la propriété de n'importe quel attribut.


0

J'essayais certains scripts trouvés, mais l'attribut était toujours requis. Le paramètre correct est «is_required» et non «required». $installer->updateAttribute('entity_type', 'your_attribute_id', 'is_required', 1);


0

Le code ci-dessous mettra à jour l'attribut à l'aide du script sql

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

0

vous pouvez trouver la définition de la fonction updateAttribute () dans le fichier app\code\core\Mage\Eav\Model\Entity\setup.php

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.