:bug: Сообщаю об ошибке :bug:
Версия Акенео: CE 4.0.31
При загрузке pdf со страницы обогащения продукта он переходит по указанному ниже URL-адресу и показывает ошибку: http://<pimhost>/enrich/product/1018/download-pdf?dataLocale=en_US&dataScope=ecommerce
Impossible to invoke a method ("__toString") on a string variable ("Some value")
in vendor/akeneo/pim-community-dev/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig (line 118)
Это происходит потому, что для pim_catalog_simpleselect
и pim_catalog_multiselect
тип content
уже преобразован в строку в этой строке 114 :
{% set content = optionLabels[attribute.code] %}
Другая связанная проблема на той же странице находится в строке 110 :
Для типа pim_catalog_image
content
является экземпляром Akeneo\Pim\Enrichment\Component\Product\Value\MediaValue
, который имеет свойство data
, но не свойство media
. Но в этой строке используется content.media
, вызывающая ошибку.
Следующий diff может исправить проблему на данный момент
diff --git a/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig b/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig
index 3730bea3c2b..7576ad0ef82 100644
--- a/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig
+++ b/src/Akeneo/Pim/Enrichment/Bundle/Resources/views/Product/renderPdf.html.twig
@@ -107,11 +107,12 @@
{% set content = product.getValue(attribute.code, locale_attribute, channel_attribute) %}
{% set manualHeight = true %}
- {% if 'pim_catalog_image' == attribute.type and content.media is not null %}
- {% set content = content.media.originalFilename %}
+ {% if 'pim_catalog_image' == attribute.type and content.data is not null %}
+ {% set content = content.data.originalFilename %}
{% set manualHeight = false %}
{% elseif ('pim_catalog_simpleselect' == attribute.type or 'pim_catalog_multiselect' == attribute.type) and attribute.code in optionLabels|keys %}
{% set content = optionLabels[attribute.code] %}
+ {% set manualHeight = false %}
{% endif %}
{% if content != null and manualHeight == true %}
Привет @adhocore ,
Спасибо, что открыли этот выпуск с таким точным описанием.
что касается вашей первой проблемы с __toString
, быстрое исправление должно быть скоро добавлено в 4.0.x: https://github.com/akeneo/pim-community-dev/pull/12430
Что касается второго вопроса, я постараюсь найти время, чтобы изучить его как можно скорее.
Привет,
есть новости по второму номеру?
Большое спасибо 🙏
Исправление может заключаться в использовании функции twig, определенной в атрибуте media, например:
{% if 'pim_catalog_image' == attribute.type and content.media is defined and content.media is not null %}
Извините, что не ответил раньше.
Я изучил это и открыл PR об этом: https://github.com/akeneo/pim-community-dev/pull/12496 .
Должны быть скоро объединены в 4.0.x.
Большое спасибо 👍 💪
пожалуйста, не стесняйтесь закрыть эту проблему, если у нас есть новая версия akeneo с исправлениями, спасибо
Самый полезный комментарий
Извините, что не ответил раньше.
Я изучил это и открыл PR об этом: https://github.com/akeneo/pim-community-dev/pull/12496 .
Должны быть скоро объединены в 4.0.x.