無効なオフセットエラーを解決します
ここでは、Adobe Commerce 2.1 以降で、Commerce Admin
Adobe Commerce 2.1 以降では、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
詳細
Adobe Commerce 2.1 以降では、Magento\Framework\Api\ExtensionAttributesFactory.php
の getExtensionAttributes
メソッドの getDocComment
検証呼び出しで PHP コードコメントを使用します。
PHP OPcache (推奨)を有効にした場合、デフォルトでは OPcache 設定 opcache.save_comments
が無効になっているため、このエラーが表示されます。
回避策
この問題を解決するには、OPcache 設定を探し、次のように有効 opcache.save_comments
します。
手順 1:OPcache 設定を見つける
OPcache 構成設定を検索する手順は、次のとおりです。
PHP OPcache の設定は、通常 php.ini
または opcache.ini
に置かれます。 場所は、オペレーティングシステムと PHP のバージョンによって異なる場合があります。 OPcache 構成ファイルには、[opcache]
セクションまたは opcache.enable
のような設定が含まれる場合があります。
検索には、次のガイドラインを使用します。
- Apache web サーバー:
Apache を使用する Ubuntu の場合、OPcache 設定は通常 php.ini
にあります。
Apache または nginx を使用する CentOS の場合、OPcache 設定は通常 /etc/php.d/opcache.ini
にあります。
存在しない場合は、次のコマンドを使用して検索します。
$ sudo find / -name 'opcache.ini'
- php-FPM を使用する nginx web サーバ:
/etc/php5/fpm/php.ini
。
複数の opcache.ini
がある場合は、それらをすべて変更します。
手順 2:opcache.save_comments
を有効にする
-
OPcache 構成ファイルをテキスト・エディタで開きます。
-
opcache.save_comments
を見つけ、必要に応じてコメントを解除します。 -
その値が
1
に設定されていることを確認します。 -
変更を保存し、テキストエディターを終了します。
-
Web サーバーを再起動します。
- Apache、Ubuntu:
service apache2 restart
- Apache、CentOS:
service httpd restart
- nginx、Ubuntu、CentOS:
service nginx restart
- Apache、Ubuntu:
-
DI 構成および自動生成できる不足しているクラスをすべて再生成します:
$ bin/magento setup:di:compile`