Risolvi un errore di offset non valido
Questo articolo fornisce una soluzione per quando, in Adobe Commerce 2.1 o versione successiva, si riceve un messaggio di errore Risolvi un offset non valido durante la creazione di un nuovo prodotto in Commerce Admin.
In Adobe Commerce 2.1 o versione successiva, quando si crea un nuovo prodotto in Commerce Admin, potrebbe essere visualizzato il seguente errore:
Warning: Illegal string offset 'is_in_stock' in [...]/vendor/
magento/module-catalog-inventory/Ui/DataProvider/Product/Form/
Modifier/AdvancedInventory.php on line 87
Dettaglio
Adobe Commerce 2.1 e versioni successive utilizzano i commenti del codice PHP nella chiamata di convalida getDocComment
nel metodo getExtensionAttributes
in Magento\Framework\Api\ExtensionAttributesFactory.php
.
Se è stata abilitata la PHP OPcache (scelta consigliata), questo errore viene visualizzato perché per impostazione predefinita l'impostazione OPcache opcache.save_comments
è disabilitata.
Soluzione alternativa
Per risolvere il problema, individuare le impostazioni di configurazione di OPcache e abilitare opcache.save_comments
come segue:
Passaggio 1: individuare la configurazione OPcache
Per trovare le impostazioni di configurazione di OPcache:
Le impostazioni PHP OPcache si trovano in genere in php.ini
o opcache.ini
. La posizione potrebbe dipendere dal sistema operativo in uso e dalla versione PHP. Il file di configurazione OPcache potrebbe avere una sezione [opcache]
o impostazioni come opcache.enable
.
Utilizza le seguenti linee guida per trovarlo:
- Server web Apache:
Per Ubuntu con Apache, le impostazioni OPcache si trovano in genere in php.ini
.
Per CentOS con Apache o nginx, le impostazioni OPcache si trovano in genere in /etc/php.d/opcache.ini
.
In caso contrario, utilizzare il comando seguente per individuarlo:
$ sudo find / -name 'opcache.ini'
- Server Web nginx con PHP-FPM:
/etc/php5/fpm/php.ini
.
Se si dispone di più di un opcache.ini
, modificarli tutti.
Passaggio 2: abilitare opcache.save_comments
-
Apri il file di configurazione OPcache in un editor di testo.
-
Individuare
opcache.save_comments
e, se necessario, rimuoverlo dal commento. -
Assicurarsi che il relativo valore sia impostato su
1
. -
Salva le modifiche e esci dall’editor di testo.
-
Riavviare il server Web:
- Apache, Ubuntu:
service apache2 restart
- Apache, CentOS:
service httpd restart
- nginx, Ubuntu e CentOS:
service nginx restart
- Apache, Ubuntu:
-
Rigenera la configurazione DI e tutte le classi mancanti che possono essere generate automaticamente:
$ bin/magento setup:di:compile`