Разнести строку в массив с помощью Twig? - PullRequest
7 голосов
/ 19 марта 2012

Есть ли какая-либо функция для разбиения строки на куски на основе разделителя? Противоположность фильтра join.

Я имею в виду что-то вроде explode в PHP. Мне нужно проверить, содержит ли параметр class заданную строку:

{% macro nav_item(route, label, class, tooltip, placement) %}
{% spaceless %}
    {% if 'icon-white' in class|explode(' ') %}
    {% edif %}
{% endspaceless %}
{% endmacro %}

Ответы [ 2 ]

17 голосов
/ 16 декабря 2012

Начиная с Twig 1.10.3, есть фильтр split .

{% set classes = class|split(' ') %}
1 голос
/ 19 марта 2012

Раствор для веточки до 1.10.3

AFAIK, такого фильтра в ветке нет. Однако вы можете использовать оператор in следующим образом:

{% spaceless %}
    {% set test_class = ' ' ~ class ~ ' ' %}
    {% if ' icon-white ' in test_class %}
    {% endif %}
{% endspaceless %}

Так, например, если ваш класс выглядит как 'some-class icon-white icon-white-2', то test_class примет значение ' some-class icon-white icon-white-2 ', а in вернет true для этого класса. Однако он вернет false для ' some-class icon-white-2 ', как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...