Se espera un nombre constante. Error


Respuestas:


16

Creo que hay algún problema en su carpeta, etc. verifique todos los archivos xml . El nombre constante debe estar en CAPITALletras. cualquiera de sus constantes permanecen en minúsculas. compruébalo y corrígelo. Espero que esto resuelva su problema.


13

Para ayudarlo a depurar lo que está sucediendo, sugeriría editar temporalmente el archivo

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

De esto...

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

A esto...

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

De este modo, se le notificará qué clase / constante le está causando el error:

ingrese la descripción de la imagen aquí

Espero que pueda ayudar a alguien más ;-) Nos vemos


11

En el caso de que su extensión esté en la carpeta de aplicación / código, obtendrá este error si el nombre de su carpeta es diferente al nombre del módulo después de Magento_ en module.xml

por ejemplo: si el nombre de su módulo es Magento_MyGreatModule, el nombre de su carpeta debe ser MyGreatModule .


gracias ! otro gran ejemplo de
mensaje de

Esta respuesta también funcionó para mí.
Arfeen

¡Gracias! Me encontré con este después de cambiar el nombre de mi módulo.
Giel Berkers

3

Como ya se indicó en las respuestas anteriores, esto es más probable debido a algún error en uno de sus archivos de configuración. Por ejemplo, este error se activa cuando hace lo siguiente sin tener una clase que declare la constante (observe la ::CODEdeclaración):

<!-- 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> 
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.