doucongqian6644 2016-04-21 16:52
浏览 64
已采纳

查找数组中的项是否在子字符串twig中

im reading Find substring in the string in TWIG

and on a single item it works fine for me.

<!-- language: lang-html -->
<li {% if 'page' in app.request.get('_route')|lower %}class="active"{% endif %}>
    <a href="{{path('adminPage')}}">
        <i class="fa fa-file-text"></i> <span>{% trans %}pages_text{% endtrans %}</span> <small class="label pull-right bg-{% if nav_options.count_pages > 0 %}primary{% else %}red{% endif %}">{{ nav_options.count_pages }}</small>
    </a>
</li>

now I find myself needing it to happen differently.

how would I do to find if "items in this array" are contained in "this substring"

the example would be something like this

{% if ['str1','str2'] in/contained in app.request.get('_route')|lower %}class="active"{% endif %}

I tried this and does not work.

I also would rather avoid using the "or" operator, if its a requirement so be it, but if it can be avoided, the better.

I even went and attempted a split parameter.

{% if 'page,blog'|split(',') in app.request.get('_route')|lower %}active {% endif %}

no dice!

the code is meant to allow me to have "several possible routes" inside a collapsible menu item, and if any of the possible route names (i have several route names, blog, blogAdd, blogEdit, blogPost etc) contains "blog" (same with page, and many others) the "active" class should be printed.

  • 写回答

2条回答 默认 最新

  • dongyangben6144 2016-04-22 15:22
    关注

    Creating a custom twig function would be an easier solution to use

    $function = new Twig_SimpleFunction('array_in_string', function ($haystacks, $needle) {
        foreach($haystacks as $haystack) if (stripos($haystack, $needle) !== false) return true;
        return false;
    });
    
    $twig = new Twig_Environment($loader);
    $twig->addFunction($function);
    

    Then you call this function in Twig with :

    {% if array_in_string(['page','blog',], app.request.get('_route')) %}
       {# do sthing #}
    {% endif %}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 加一个K2暂停音乐的功能
  • ¥15 完成虚拟机环境配置,还有安装kettle
  • ¥15 2024年全国大学生数据分析大赛A题:直播带货与电商产品的大数据分析 问题5. 请设计一份优惠券的投放策略,需要考虑优惠券的数量、优惠券的金额、投放时间段和投放商品种类等因素。求具体的python代码
  • ¥15 有人会搭建生鲜配送自营+平台的管理系统吗
  • ¥15 用matlab写代码
  • ¥30 motoradmin系统的多对多配置
  • ¥15 求组态王串口自定义通信配置方法或代码?
  • ¥15 实验 :UML2.0 结构建模
  • ¥20 用vivado写数字逻辑实验报告撰写,FPGA实验
  • ¥15 为什么shp文件会有这种小方块?