2016-12-05 13 views
0

Я вставляю список изображений спонсоров на боковой панели в графе и хочу показывать только изображения, начиная с sponsor_.Как фильтровать список изображений с твином в графе

В настоящий момент мой код добавляет любое изображение в папку с папкой.

base.html.twig:

<div class="sidebar-right-content"> 
<!-- insert R sidebar images here  --> 

<div class="sponsor-image"> 
    <h3>Sponsors</h3> 
    {% for image in page.media.images %} 
     <br>{{ image.html }} 
    {% endfor %} 
</div> 

Я попытался ограничения изображения, возвращаемые с помощью ниже выражения, но изображения не возвращаются:

{% for image in page.media.images if image matches '/^sponsor.*$/' %} 

Есть ли способ использовать фильтр в этом контексте?

ответ

1

После некоторого тестирования нескольких вариантов, я нашел несколько безвкусный способ решить эту проблему. Главное, что page.media.images возвращает массив, поэтому мы не можем отфильтровать это как строку. Так что я просто вложил оператор соответствия. Интересно, есть ли однолинейное решение.

{% for image in page.media.images %} 
    {% if image.html matches '/.*sponsor.*$/' %} 
    <br>{{ image.html }} 
    {% endif %} 
{% endfor %} 
1

попробовать: {% image in page.media.images |contains('sponsor') %}

+0

дериватографическими, кажется, не нравится, что синтаксис он выдает ошибку: 0 - исключение было выброшено во время рендеринга шаблона («StrPos() ожидает параметр 1, чтобы быть строка, массив с учетом») в разделе «partials/base.html.twig» в строке 96. – FGiorlando

+0

, который, правда, получил меня на правильном пути, спасибо! – FGiorlando