Åtgärda ett ogiltigt förskjutningsfel
I den här artikeln finns en lösning för när du i Adobe Commerce 2.1 eller senare får ett felmeddelande om att en ny produkt har skapats i Commerce Admin att åtgärdas.
I Adobe Commerce 2.1 och senare kan följande fel visas när du skapar en ny produkt i Commerce Admin:
Warning: Illegal string offset 'is_in_stock' in [...]/vendor/
magento/module-catalog-inventory/Ui/DataProvider/Product/Form/
Modifier/AdvancedInventory.php on line 87
Detalj
I Adobe Commerce 2.1 och senare används PHP-kodkommentarer i valideringsanropet getDocComment i metoden getExtensionAttributes i Magento\Framework\Api\ExtensionAttributesFactory.php.
Om du har aktiverat PHP OPcache (vilket vi rekommenderar) visas det här felet eftersom inställningen opcache.save_comments är inaktiverad som standard.
Tillfällig lösning
Du löser problemet genom att leta upp dina inställningar för OPCache-konfigurationen och aktivera opcache.save_comments enligt följande:
Steg 1: Leta reda på din OPCache-konfiguration
Så här hittar du konfigurationsinställningar för OPCache:
Inställningarna för PHP OPcache finns vanligtvis antingen i php.ini eller opcache.ini. Platsen kan vara beroende av operativsystemet och PHP-versionen. Konfigurationsfilen för OPCache kan ha ett [opcache]-avsnitt eller inställningar som opcache.enable.
Använd följande riktlinjer för att hitta den:
- Apache-webbserver:
För Ubuntu med Apache finns inställningarna för OPcache vanligtvis i php.ini.
För CentOS med Apache eller nginx finns OPcache-inställningarna vanligtvis i /etc/php.d/opcache.ini .
Om inte, använder du följande kommando för att hitta den:
$ sudo find / -name 'opcache.ini'
- nginx-webbserver med PHP-FPM:
/etc/php5/fpm/php.ini.
Om du har fler än en opcache.ini ändrar du alla.
Steg 2: Aktivera opcache.save_comments
-
Öppna konfigurationsfilen för OPCache i en textredigerare.
-
Leta reda på
opcache.save_commentsoch avkommentera den om det behövs. -
Kontrollera att värdet är
1. -
Spara ändringarna och avsluta textredigeraren.
-
Starta om webbservern:
- Apache, Ubuntu:
service apache2 restart - Apache, CentOS:
service httpd restart - nginx, Ubuntu och CentOS:
service nginx restart
- Apache, Ubuntu:
-
Generera om DI-konfiguration och alla saknade klasser som kan genereras automatiskt:
$ bin/magento setup:di:compile`