【发布时间】:2019-01-25 11:48:06
【问题描述】:
我在 Magento 2.2.5 上以编程方式保存产品时遇到了这个问题
在任何模块中,如果我在多个产品的循环内执行 $product->save(); 或 $this->productRepository->save($product);。我明白了:
PDOException: SQLSTATE[23000]: 完整性约束违规:1062 /home/dev3/www/vendor/magento/zendframework1/library/ 中的键 'URL_REWRITE_REQUEST_PATH_STORE_ID' 的重复条目 'the-lipstick.html-1' Zend/Db/Statement/Pdo.php:228
错误与此处描述的错误类似:https://www.human-element.com/url-key-specified-store-already-exists-magento-2/
使用管理区域登录可以很好地保存产品。
到目前为止,任何建议的修复程序,包括修改核心文件 (DBStorage.php) 的修复程序都不适用于 2.2.5。
到目前为止我尝试了什么: 1.修复https://www.human-element.com/url-key-specified-store-already-exists-magento-2/ 2. 修复https://magento.stackexchange.com/questions/210359/magento-2-product-url-rewrite-issue
请为 M 2.2.5 提出解决方案/修复建议
【问题讨论】:
-
我们发现
url_key在最初保存时包含大写字符可能会导致此问题。 Magento 以全小写形式显示url_key,但数据库具有大写字符。 Magento 然后认为重写不存在并尝试使用不同的大小写再次添加它。