Un nom constant est attendu. Erreur


Réponses:


16

Je pense que certains problèmes dans votre dossier etc. vérifier tous les fichiers xml . Le nom constant doit être en CAPITALlettres. n'importe laquelle de vos constantes reste en petites lettres. vérifiez-le et corrigez-le. J'espère que cela résoudra votre problème.


13

Afin de vous aider à déboguer ce qui se passe, je suggère de modifier temporairement le fichier

vendor/magento/framework/Data/Argument/Interpreter/Constant.php

De cela ...

public function evaluate(array $data) {
    if(!isset($data['value']) || !defined($data['value'])) {
        throw new \InvalidArgumentException('Constant name is expected.');
    }
    return constant($data['value']);
}

Pour ça...

public function evaluate(array $data) {
    if(!isset($data['value']) || !defined($data['value'])) {
        print_r($data);exit;                                                    // <<<<<<<<<<<<
        throw new \InvalidArgumentException('Constant name is expected.');
    }
    return constant($data['value']);
}

Ainsi, vous serez informé de la classe / constante qui vous cause l'erreur:

entrez la description de l'image ici

J'espère que cela pourrait aider quelqu'un d'autre ;-) À bientôt


11

Dans le cas où votre extension se trouve dans le dossier app / code, vous obtiendrez cette erreur si le nom de votre dossier est différent du nom du module après Magento_ dans module.xml

par exemple: si le nom de votre module est Magento_MyGreatModule, le nom de votre dossier doit être MyGreatModule .


Merci ! un autre excellent exemple de message d'erreur trompeur ...
medmek

Cette réponse a également fonctionné pour moi.
Arfeen

Je vous remercie! Je suis tombé sur celui-ci après avoir renommé mon module.
Giel Berkers

3

Comme déjà indiqué dans les réponses précédentes, cela est probablement dû à une erreur dans l'un de vos fichiers de configuration. Par exemple, cette erreur est déclenchée lorsque vous effectuez les opérations suivantes sans avoir de classe qui déclare la constante (notez la ::CODEdéclaration):

<!-- etc/di.xml -->
<virtualType name="ExamplePaymentGatewayConfig" type="Magento\Payment\Gateway\Config\Config">
  <arguments>
    <argument name="methodCode" xsi:type="const">\Company\Example\Model\Ui\ConfigProvider::CODE</argument>
  </arguments>
</virtualType> 
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.