Ich weiß, dass es ein ähnliches Problem mit einem Produkt gibt , aber jetzt habe ich diesen Fehler mit einer Kategorie.
Ich kann mich nicht erinnern, dass ich etwas anderes gemacht habe. Plötzlich wurde dieser Fehler ausgelöst, sobald ich auf eine Kategorieseite im Frontend kam.
Manchmal wurde das Problem durch erneutes Speichern der Kategorie im Administrator behoben, in den meisten Fällen jedoch nicht. Woher kommt dieser Fehler? Wie man es repariert? Ist auch jemand auf diesen Fehler gestoßen?
Bearbeiten
Es sieht so aus, als ob die Kategorieseite die URL-Umschreibungstabelle nach den URLs fragt. Es generiert diese Abfrage:
SELECT `e`.*,
IF(at_is_active.value_id > 0, at_is_active.value,
at_is_active_default.value) AS
`is_active`,
`url_rewrite`.`request_path`
FROM `catalog_category_entity` AS `e`
INNER JOIN `catalog_category_entity_int` AS `at_is_active_default`
ON ( `at_is_active_default`.`entity_id` = `e`.`entity_id`)
AND ( `at_is_active_default`.`attribute_id` = '46' )
AND `at_is_active_default`.`store_id` = 0
LEFT JOIN `catalog_category_entity_int` AS `at_is_active`
ON ( `at_is_active`.`entity_id` = `e`.`entity_id` )
AND ( `at_is_active`.`attribute_id` = '46' )
AND ( `at_is_active`.`store_id` = 1 )
LEFT JOIN `url_rewrite`
ON ( url_rewrite.entity_id = e.entity_id )
AND ( url_rewrite.is_autogenerated = 1
AND url_rewrite.store_id = 1
AND url_rewrite.entity_type = 'category' )
WHERE ( IF(at_is_active.value_id > 0, at_is_active.value,
at_is_active_default.value)
=
'1' )
AND ( `e`.`entity_id` IN( '10', '170', '171', '172',
'173', '175', '176', '177',
'178', '179', '180', '189', '276' ) )
ORDER BY `e`.`position` ASC
Wenn Ihre url_rewrite
-tabelle jedoch beschädigt ist (was in meinem Fall am wahrscheinlichsten ist), hat sie doppelte IDs.
Sometimes re-saving the category in the admin resolved the issue
Das hat bei mir funktioniert, danke !!Antworten:
php bin/magento indexer:reindex
quelle
php bin/magento indexer:reindex
quelle
Die folgende SQL-Abfrage bereinigt das Umschreiben doppelter Kategorien. Nicht ohne Backup verwenden.
Sie können
n98-magerun2 db:console
oder einen anderen MySQL-Client verwenden:quelle
Für uns hat das nur den Trick gemacht:
Unser Fehler (mit Magento 2.2.2) war dies bei der Frontend-Suche oder der Eingabe der Kategorie:
quelle