Pertanyaan Meledakkan string ke dalam array dengan Twig?


Apakah ada fungsi untuk membagi string menjadi potongan berdasarkan pemisah? Lawan dari join menyaring.

Maksud saya sesuatu seperti explode di PHP. Saya perlu memeriksa apakah class parameter berisi string yang diberikan:

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

5
2018-03-19 00:06


asal


Jawaban:


Solusi untuk ranting sebelum 1.10.3

AFAIK, tidak ada filter seperti ini di ranting. Namun Anda mungkin menggunakannya in operator sebagai berikut:

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

Jadi, misalnya, jika kelas Anda terlihat seperti 'some-class icon-white icon-white-2' maka test_class akan mengambil nilai ' some-class icon-white icon-white-2 ' dan in akan kembali true untuk kelas ini. Namun, akan kembali false untuk ' some-class icon-white-2 ', seperti yang diharapkan.


1
2018-03-19 06:08



Pada Twig 1.10.3 ada membagi  menyaring.

{% set classes = class|split(' ') %}

15
2017-12-16 10:44