Question

Ok, donc je suis en train d'ajouter un champ à l'enregistrement avec mon module. Il est évident que je dois ajouter un attribut. Donc, mon « script d'installation » est vraiment juste une mise à niveau à l'entité client. Cependant, le module est activé et encore quand je rafraîchir l'avant, il ne fonctionnera pas mon script d'installation. J'ai mis une puce à l'avant pour voir si son même frappant et ses pas.

J'ai vérifié environ 7 questions de débordement de pile et chacune des erreurs était assez flagrante. Des choses comme la config ne correspondant pas au dossier où il était. À l'aide customer_setup comme le nom. Des erreurs dans le fichier de configuration. Maintes et maintes fois que je l'ai regardé mon code et je sais que manquant petit quelque chose im. Certains typo quelque part ..... mais Ive perdu trop de temps, alors je le remets à vous de gens formidables.

Config.xml

<config>
    <modules>
        <BlizzardLabs_Customer>
            <version>0.1.0</version>
        </BlizzardLabs_Customer>
    </modules>
    <global>
        <fieldsets>
            <customer_account>
                <flavour>
                  <create>1</create>
                  <update>1</update>
                </flavour>
            </customer_account>
        </fieldsets>
        <resources>
            <blizzardlabs_customer_setup>
                <setup>
                    <module>BlizzardLabs_Customer</module>
                    <class>BlizzardLabs_Customer_Model_Entity_Setup</class>
                </setup>
            </blizzardlabs_customer_setup>
        </resources>
    </global>
</config>

BlizzardLabs / Client / Modèle / Entité / Setup.php

class BlizzardLabs_Customer_Model_Entity_Setup extends Mage_Customer_Model_Entity_Setup {

  public function getDefaultEntities() {
    $entities = parent::getDefaultEntities();

    // Add flavour to customer attributes
    $entities['customer']['attributes']['flavour'] = array(
        'label' => 'Ice Cream Flavour',
        'visible' => true,
        'required' => true,
    );

    return $entities;
  }

}

BlizzardLabs / client / sql / blizzardlabs_customer_setup / mysql4-install-0.1.0.php

Mage::log('Installing BlizzardLabs_Customer');

$installer = $this;
$installer->startSetup();
$installer->addAttribute('customer', 'flavour', array(
    'label' => 'Ice Cream Flavour',
    'type' => 'varchar',
    'input' => 'text',
    'visible' => true,
    'required' => true,
    'position' => 1,
));

$attrs = array('flavour');

foreach ($attrs as $item) {
  $attr = Mage::getSingleton('eav/config')->getAttribute('customer', $item);
  $attr->setData('used_in_forms', array('adminhtml_customer','customer_account_edit','customer_account_create'))->save();
}

$installer->endSetup();

echo "information added to database";

Mise à jour: Excusez-moi pour la faute de frappe. le script est en blizzardlabs_customer_setup

Tableau de code_resource:

+-------------------------------------+---------+
| code                                | version |
+-------------------------------------+---------+
| adminnotification_setup             | 1.0.0   |
| admin_setup                         | 0.7.1   |
| amazonpayments_setup                | 0.1.2   |
| api_setup                           | 0.8.1   |
| backup_setup                        | 0.7.0   |
| bundle_setup                        | 0.1.8   |
| catalogindex_setup                  | 0.7.10  |
| cataloginventory_setup              | 0.7.5   |
| catalogrule_setup                   | 0.7.7   |
| catalogsearch_setup                 | 0.7.6   |
| catalog_setup                       | 0.7.69  |
| checkout_setup                      | 0.9.3   |
| chronopay_setup                     | 0.1.0   |
| cms_setup                           | 0.7.8   |
| compiler_setup                      | 0.1.0   |
| contacts_setup                      | 0.8.0   |
| core_setup                          | 0.8.13  |
| cron_setup                          | 0.7.1   |
| customer_setup                      | 0.8.11  |
| cybermut_setup                      | 0.1.0   |
| cybersource_setup                   | 0.7.0   |
| dataflow_setup                      | 0.7.4   |
| directory_setup                     | 0.8.5   |
| downloadable_setup                  | 0.1.15  |
| eav_setup                           | 0.7.13  |
| enterprise_admingws_setup           | 0.0.1   |
| enterprise_catalogevent_setup       | 0.0.4   |
| enterprise_catalogpermissions_setup | 0.0.6   |
| enterprise_customerbalance_setup    | 0.0.10  |
| enterprise_enterprise_setup         | 0.0.1   |
| enterprise_giftcardaccount_setup    | 0.0.12  |
| enterprise_giftcard_setup           | 0.0.8   |
| enterprise_invitation_setup         | 0.0.3   |
| enterprise_logging_setup            | 0.1.8   |
| enterprise_pci_setup                | 0.0.3   |
| enterprise_staging_setup            | 0.1.10  |
| enterprise_websiterestriction_setup | 0.0.1   |
| eway_setup                          | 0.1.0   |
| flo2cash_setup                      | 0.1.1   |
| giftmessage_setup                   | 0.7.2   |
| googleanalytics_setup               | 0.1.0   |
| googlebase_setup                    | 0.1.1   |
| googlecheckout_setup                | 0.7.3   |
| googleoptimizer_setup               | 0.1.2   |
| ideal_setup                         | 0.1.0   |
| log_setup                           | 0.7.6   |
| newsletter_setup                    | 0.8.0   |
| oscommerce_setup                    | 0.8.10  |
| paybox_setup                        | 0.1.3   |
| paygate_setup                       | 0.7.0   |
| payment_setup                       | 0.7.0   |
| paypaluk_setup                      | 0.7.0   |
| paypal_setup                        | 0.7.2   |
| poll_setup                          | 0.7.2   |
| productalert_setup                  | 0.7.2   |
| protx_setup                         | 0.1.0   |
| rating_setup                        | 0.7.2   |
| reports_setup                       | 0.7.7   |
| review_setup                        | 0.7.4   |
| salesrule_setup                     | 0.7.7   |
| sales_setup                         | 0.9.38  |
| sendfriend_setup                    | 0.7.2   |
| shipping_setup                      | 0.7.0   |
| sitemap_setup                       | 0.7.2   |
| strikeiron_setup                    | 0.9.1   |
| tag_setup                           | 0.7.2   |
| tax_setup                           | 0.7.8   |
| usa_setup                           | 0.7.0   |
| weee_setup                          | 0.13    |
| wishlist_setup                      | 0.7.4   |
+-------------------------------------+---------+
Était-ce utile?

La solution

Je pense que vous devez ajouter le mysql4-install-0.1.0.php dans un dossier appelé blizzardlabs_customer_setup. Tout comme le nom de votre balise xml dans la balise <resources>. Ainsi, le chemin doit être BlizzardLabs/Customer/sql/blizzardlabs_customer_setup/mysql4-install-0.1.0.php. Avant de l'essayer à nouveau avec la marque que de chemin modifié vous supprimez le dossier de la table core_resource avec le blizzardlabs_customer_setup de code et d'effacer le cache.
Hors sujet. Si vous travaillez avec Magento EE 1.12 vous pouvez perdre le mysql4 au nom de script d'installation. Vous pouvez le faire install-0.1.0.php. Mais ce n'est pas si important que cela. Il fonctionne dans les deux sens.

[EDIT] Je l'ai essayé de courir testé votre script. J'ai créé les fichiers que vous avez décrit. La seule chose que j'ajouté était le fichier de déclaration du module: app/etc/modules/BlizzardLabs_Customer.xml avec ce contenu

.
<?xml version="1.0"?>
<config>
    <modules>
        <BlizzardLabs_Customer>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Customer />
            </depends>
        </BlizzardLabs_Customer>
    </modules>
</config>

Et tout a parfaitement fonctionné. Assurez-vous que vous avez effacé le cache. Assurez-vous que les modules locaux ne sont pas désactivés (en app/etc/local.xml cette balise est définie sur <disable_local_modules>false</disable_local_modules> false). C'est tout ce que je peux penser.

Autres conseils

Je disais que ça devrait faire la bonne chose et après cela. En regardant dans la table « core_resource » dans la base de données, je peux déjà voir une entrée de customer_setup qui est du noyau magento.

Je pense que cela est la raison pour laquelle vous ne pouvez pas utiliser blizzardlabs_customer_setup rien à voir avec 2 underscores. Donc, l'un des contrôles après l'exécution de l'installation si vous ne pouvez pas le voir dans le tableau « core_resource » devrait être de vous assurer que vous n'avez pas utilisé tout ce qui pourrait contrevenir à des entrées déjà existantes, par exemple anything_customer_setup_g

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top