Как отформатировать и отобразить сглаженные результаты? - PullRequest
0 голосов
/ 15 февраля 2019

, пожалуйста, помогите мне с этим вопросом.

Мне нужно, чтобы отображаемые результаты сглаживались (объединялись) по ключу.

Фактически код mys twig:

Идеальный результат:

<dt class='detail'>Color(s):</dt><dd>Blue, Red, Orange</dd><br><br>
<dt class='detail'>Style(s):</dt><dd>Old, Japanese</dd><br><br>

Мой тест:

{{ product_properties(product.properties, "<dt class='detail'>{key}:</dt><dd>{value}</dd><br><br>") }}

Результаты:

<dt class='detail'>Color(s):</dt><dd>Blue</dd><br><br>
<dt class='detail'>Style(s):</dt><dd>Old</dd><br><br>
<dt class='detail'>Color(s):</dt><dd>Red</dd><br><br>
<dt class='detail'>Style(s):</dt><dd>Japanese</dd><br><br>
<dt class='detail'>Color(s):</dt><dd>Orange</dd><br><br>

1 Ответ

0 голосов
/ 15 февраля 2019

Кажется, ваш product.properties объект выглядит так:

productProperties = {
    color: ['blue', 'red', 'orange'],
    style: ['old', 'japanese']
}

Но функция product_properties проходит по каждому элементу свойства объекта.

Подумайте о том, чтобы перевести ваш объект продукта в другой объект, объединяющий все значения каждого свойства:

function concatProps(productProperties) {
    return {
        color: productProperties.color.join(),
        style: productProperties.style.join()
    }
}

А затем выполните:

{{ product_properties(concatProps(product.properties), "<dt class='detail'>{key}:</dt><dd>{value}</dd><br><br>") }}

Надеюсь, это поможет.Я не могу сделать больше без подробностей.

...