我有一个 Prestashop 8.1.1 的小脚本,其中一部分是按列表删除产品。当我使用其 id 创建产品并调用 delete() 方法时,出现此错误:
*313784 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Call to a member function get() on null in /usr/share/nginx/html/****/classes/Image.php:642
Stack trace:
#0 /usr/share/nginx/html/****/classes/Image.php(210): ImageCore->deleteImage()
#1 /usr/share/nginx/html/****/classes/Product.php(1600): ImageCore->delete()
#2 /usr/share/nginx/html/****/ext/newtry.php(601): ProductCore->deleteImages()
#3 {main}
Image 类中第 642 行附近:
// Delete auto-generated images
$image_types = ImageType::getImagesTypes();
$sfContainer = SymfonyContainer::getInstance();
$isMultipleImageFormatFeatureEnabled = $sfContainer->get('prestashop.core.admin.feature_flag.repository')->isEnabled(FeatureFlagSettings::FEATURE_FLAG_MULTIPLE_IMAGE_FORMAT);
有什么想法吗?
编辑:即使我尝试通过网络服务删除产品,我也会再次遇到相同的错误
这是由于 PrestaShop 8.1 中引入的错误造成的。您可以实施这些更改:https://github.com/PrestaShop/PrestaShop/pull/33407/files,这应该对您有帮助。
它们是 PrestaShop 8.1.2 版本的一部分:)