Веточка, как интерполировать в JSON - PullRequest
0 голосов
/ 10 февраля 2020

В настоящее время я пытаюсь удалить символы Unicode из строки.

    {% include 'components/accordion.twig' with {
      this: {
        id: program.slug,
        active: (loop.index == 1) ? true : false
      }
    } only %}
  {% endfor %}

В основном я пытаюсь достичь

{% include 'components/accordion.twig' with {
          this: {
            id: "{{ programs.slug | convert_encoding('UTF-8', 'ISO-8859-1') }}"
            active: (loop.index == 1) ? true : false
          }
        } only %}
{% endfor %}

проблема в том, что programs.slug возвращает "aria-c-senior-citizens-rent-increase-exemption-%e2%80%8bscrie" Я пытаюсь удалить %e2%80%8b, поэтому у меня есть "aria-c-senior-citizens-rent-increase-exemption-scrie" через convert_encoding('UTF-8', 'ISO-8859-1') Как я могу go сделать это?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

Создать функцию из дерева Сделать функции доступными в Twig

 /**
     * Adds functionality to Twig.
     *
     * @param \Twig\Environment $twig The Twig environment.
     * @return \Twig\Environment
     */
function add_to_twig( $twig ) {
    // Adding functions as filters.
    $twig->addFilter( new Timber\Twig_Filter( 'url_decode', 'url_decode' ) );

    return $twig;
}

function url_decode( $text ) {
    return  urldecode($text);
}

Мне пришлось декодировать programs.slug, поэтому я создал функцию и передал ее в шаблон веточки следующим образом используя urldecode

 id: function('url_decode', program.slug),
0 голосов
/ 10 февраля 2020

Just:

{% include 'components/accordion.twig' with {
  this: {
    id: program.slug | convert_encoding('UTF-8', 'ISO-8859-1'),
    active: (loop.index == 1) ? true : false
  }
} only %}

, потому что {{ }} эквивалентно echo.

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