prestashop 1.7 有着悠久的历史。很多版本的产品一切都很好,但现在出现了一些奇怪的问题。更新现有产品信息时,PS 响应“无法更新产品信息”,使“保存”按钮变灰。但是,它保存简单值字段(文本、数字)中的更改。如果创建或更新组合则不起作用。
PS 1.7.8.11 PHP 7.4 (但 1.7.8.10 和 PHP 7.3 也有同样的问题)
产品不使用附件(完全不,没有一个)。出现在两个商店,一个是从另一个克隆的,一开始还可以,可能是1.7.6版本?,但现在不再了)。
如果没有调试,它会显示 main.bundle.js 错误
VM532:2 Uncaught SyntaxError: Unexpected token '<', "
<!DOCTYPE "... is not valid JSON
调试给出了不同的问题:
CRITICAL
10:47:44
php Call to undefined method Product::updateCacheAttachment()
Hide context Hide trace
[▼
"exception" => FatalThrowableError {▶}
]
{▼
/home/xxxxxxxxxxx/classes/Attachment.php:225 {▼
›
› Product::updateCacheAttachment((int) $idProduct);
›
}
/home/xxxxxxxxxxx/classes/Attachment.php:271 {▶}
/home/xxxxxxxxxxx/src/Adapter/Product/AdminProductWrapper.php:858 {▶}
/home/xxxxxxxxxxx/src/PrestaShopBundle/Controller/Admin/ProductController.php:574 {▶}
/home/xxxxxxxxxxx/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:151 {▶}
/home/xxxxxxxxxxx/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68 {▶}
/home/xxxxxxxxxxx/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:200 {▶}
/home/xxxxxxxxxxx/admin/index.php:82 {▶}
}
CRITICAL
10:47:44
request Uncaught PHP Exception Symfony\Component\Debug\Exception\UndefinedMethodException: "Attempted to call an undefined method named "updateCacheAttachment" of class "Product"." at /home/xxxxxxxxxxx/classes/Attachment.php line 225
Hide context Hide trace
[▼
"exception" => UndefinedMethodException {▶}
]
{▼
/home/xxxxxxxxxxx/classes/Attachment.php:225 {▼
›
› Product::updateCacheAttachment((int) $idProduct);
›
}
/home/xxxxxxxxxxx/classes/Attachment.php:271 {▶}
/home/xxxxxxxxxxx/src/Adapter/Product/AdminProductWrapper.php:858 {▶}
/home/xxxxxxxxxxx/src/PrestaShopBundle/Controller/Admin/ProductController.php:574 {▶}
/home/xxxxxxxxxxx/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:151 {▶}
/home/xxxxxxxxxxx/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68 {▶}
/home/xxxxxxxxxxx/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:200 {▶}
/home/xxxxxxxxxxx/admin/index.php:82 {▶}
}
]
可能出了什么问题以及如何找到问题的根本原因?
所有缓存已清除禁用,所有浏览器缓存已清除 - 没有变化。用 PHP 7.3 测试没有变化。还修改了configuration.php中的所有键以检查cookie和令牌生成 - 错误没有改变,cookie和令牌生成正常。
Prestashop 论坛的 JBW 确实给出了寻找的正确路径。使用了旧版本的 Product.php 类文件。这有一些代码被注释掉,这是问题的根本原因。现在问题解决了。案件已结。