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