как разделить символ в шаблоне Twig?



У меня есть проблема, когда я хочу использовать функцию split в Twig, у меня есть такие слова MaletDoctor, я хочу разделить это слово с помощью t ascii,



Я ищу в поисковой системе, и я получаю обсуждение проблемы разделения веток в этом url я прочитал это, и я думаю, что проблема исправлена, но когда я ищу в документации веб-сайта ветки, я не могу найти функцию фильтра по split Вы можете прочитать это.



И когда я пытаюсь использовать этот код



{{ var | split('t') }) 


Возвращение is The filter "split" does not exist



Есть ли у вас какие-либо идеи или предложения по решению этой проблемы ?

Спасибо за ваш ответ...:)



Примечание:

я использую fuelphp framework & twig template

631   3  

3 ответов:

Просто для полноты картины:
PR, упомянутый F21, теперь объединен (с 19.10.2012), а twig поддерживает split: http://twig.sensiolabs.org/doc/filters/split.html

{{ "one,two,three"|split(',') }}
{# returns ['one', 'two', 'three'] #}

Функция разделения еще не существует в Мастере веточек. Запрос pull, на который вы ссылаетесь, все еще open и не был объединен в репозиторий Twig.

Однако вы можете просто реализовать фильтр разделения в своем собственном расширении. Затем, как только Twig имеет этот фильтр в своих основных расширениях, просто удалите созданное расширение.

Создать свой собственный фильтр в своем собственном расширении легко: http://twig.sensiolabs.org/doc/advanced.html#filters

Добавьте эту функцию для настройки пользовательского фильтра в twig на платформе fuelphp в этот файл fuel/packages/parser/classes/twig/fuel/extension.php

      /**
        * Returns a list of filters to add to the existing list.
        *
        * @return array An array of filters
        */
        public function getFilters()
        {
            //custom by viyancs adding splite function because not found in twig documentation
             return array(
                 'explode'       => new Twig_Filter_Function('Class::explode_custom', array('pre_escape' => 'html', 'is_safe' => array('html'))),
                 );
        }

И объявить explode_custom функцию в другом классе в этом случае вы можете использовать тот же класс или другой его depend.

   /*
    * adding custom function for split character
    * used for fuel/app/classes/twig/fuel/extension.php
    * @params
    *  $string : this is twig variable or value example {{ test }}
    *  $split  : this is split character example {{ test\tdata | split('\t') }} \t is split character
    * @return 
    *  array of explode
    * 
    */
    public function explode_custom($string,$split)
    {
        $data = explode($split, $string);
        return $data;
    }

И за использование этого

{% set varStack = "stack[tab]overflow" | explode('\t') %}
                    {% for value in varStack %}
                    <li>{{ value }}</li>
                    {% endfor %}

Результат

stack
overflow

Comments

    Ничего не найдено.