È previsto il nome costante. Errore


Risposte:


16

Penso che qualche problema nella tua cartella etc. controlla tutti i file xml . Il nome costante deve essere in CAPITALlettere. le tue costanti rimangono in caratteri minuscoli. controllalo e correggilo. Spero che questo risolva il tuo problema.


13

Per aiutarti a eseguire il debug di ciò che sta succedendo, ti suggerirei di modificare temporaneamente il file

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

Da questa...

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

A questo...

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']);
}

In questo modo verrai informato di quale classe / costante ti sta causando l'errore:

inserisci qui la descrizione dell'immagine

Spero che possa aiutare qualcun altro ;-) Ci vediamo


11

Nel caso in cui l'estensione sia nella cartella app / codice, verrà visualizzato questo errore se il nome della cartella è diverso dal nome del modulo dopo Magento_ in module.xml

per un esempio: se il nome del modulo è Magento_MyGreatModule, il nome della cartella deve essere MyGreatModule .


grazie ! un altro grande esempio di errore fuorviante msg ...
medmek,

Questa risposta ha funzionato anche per me.
Arfeen,

Grazie! Ci siamo imbattuti in questo dopo che ho rinominato il mio modulo.
Giel Berkers,

3

Come già affermato nelle risposte precedenti, questo è probabilmente dovuto a un errore in uno dei file di configurazione. Ad esempio, questo errore viene generato quando si esegue quanto segue senza avere una classe che dichiara la costante (notare la ::CODEdichiarazione):

<!-- 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> 
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.