首先,我知道逻辑应该在控制器中,而不是在视图中,我保持这种方式。
但在这种特殊情况下,我需要在三元运算中使用preg_match来设置div的css类。
示例:
{% for list in lists %}
<div class="{{ (preg_match(list.a, b))>0 ? something : else }}"...>...</div>
{% endfor %}
如何在树枝中实现(preg_match(list.a,b))&gt; 0 条件?
提前致谢
答案 0 :(得分:5)
你不能直接使用preg_match,但有办法实现它
1)如果list是实体,则添加匹配{{ (list.matches(b)) ? something : else }}
2)您可以创建一个在内部使用preg_match的自定义树枝扩展功能http://symfony.com/doc/master/cookbook/templating/twig_extension.html
答案 1 :(得分:2)
答案 2 :(得分:0)
从 Serge 的评论中展开,是正确答案。
在我的示例中,我的字符串是“Message Taken - 12456756”。然后我可以使用 |split 将其转换为数组并使用 |replace 来消除空白。
{% set mt = 'Message Taken' in d.note %}
{% if mt == true %}
{#.. you can then do something that is true#}
{% set mt_array = d.note|split('-') %}
{{ mt_array[0] }} | {{ mt_array[1]|replace({' ' : ''}) }}
{% endif %}
这将输出我的字符串,但我现在控制两部分而不是 1。