Quel est l'avantage de l'injection CustomerSetupFactoryau lieu de l'injection directe CustomerSetup? Merci d'avoir expliqué.
Vinai
@Vinai, Looks regarde la classe customerSetup attend ModuleDataSetupInterface dans le constructeur mais cette classe est l'argument de la méthode d'installation.
KAndy
Puisqu'il ModuleDataSetupInterfacen'y a pas d'état spécifique à la classe setup, ne serait-il pas préférable de laisser l'ObjectManager être responsable de la création des dépendances d'instance alors? De cette façon, le CustomerSetupclient serait moins couplé à la mise en œuvre. D'aussi loin que je puisse voir.
Vinai
La suppression du module ne supprime pas l'attribut, comment le supprimer alors?
DevonDahon
Comment pouvons-nous ajouter plusieurs fieds ou attributs?
Jai
1
Dans votre module, implémentez ce fichier ci-dessous qui créera une nouvelle entité Client .
@Rafael Corrêa Gomes est-il possible de créer plusieurs attributs en utilisant cette méthode? Comment?
Pragman
@ZUBU il vous suffit d'ajouter un nouveau $ customerSetup-> addAttribute à côté du premier, vous pouvez rechercher -> addAttribute dans le noyau également pour voir les références.
Réponses:
Dans l'article Magento 2: Comment faire un attribut client? décrivez-le étape par étape.
La partie principale est la
DataInstall::install
méthode ci-dessous:la source
CustomerSetupFactory
au lieu de l'injection directeCustomerSetup
? Merci d'avoir expliqué.ModuleDataSetupInterface
n'y a pas d'état spécifique à la classe setup, ne serait-il pas préférable de laisser l'ObjectManager être responsable de la création des dépendances d'instance alors? De cette façon, leCustomerSetup
client serait moins couplé à la mise en œuvre. D'aussi loin que je puisse voir.Dans votre module, implémentez ce fichier ci-dessous qui créera une nouvelle entité Client .
Test \ CustomAttribute \ Setup \ InstallData.php
la source