PHP树枝条件筛选

问题描述:

比方说,我有这样的事情:PHP树枝条件筛选

<img src='{{ asset(article.image.path) | imagine_filter('watermarked') }}' />

我想要做的是应用imagine_filter('watermarked')只有article.isWatermarked()等于true

有没有这样做的切片方式?或者我坚持

{% set src = asset(article.image.path) %} 
{% if article.isWatermarked() %} 
{% set src = asset(article.image.path) | imagine_filter('watermarked') %} 
{% endif %} 
<img src='{{ src }}' /> 

这应该工作

<img src='{{ article.isWatermarked() ? asset(article.image.path) | imagine_filter('watermarked') : asset(article.image.path) }}' /> 

见三元运营商DOC:https://twig.sensiolabs.org/doc/2.x/templates.html#other-operators

+0

看起来不错,不知道该运营商的存在,让我们来看看有没有更好的方法:)。 – nacholibre

+1

只有其他aproach会使用'Twig_SimpleFunction'或'Twig_SimpelFilter' – DarkBee

取决于你有多少地方需要该功能的,你可以把它放在一个宏:

macros.twig:

{%- macro wmImage(article) -%} 
    {%- set src = article.watermarked ? asset(article.image.path) | imagine_filter('watermarked') : asset(article.image.path) -%} 
    <img src="{{ src }}"/> 
{%- endmacro -%} 

在模板(S):

{%- import 'macros.twig' as 'macros' -%} 

Usage: 
{{ macros.wmImage(article) }} 
+0

不是只有一行代码的宏的粉丝,但它做的工作 – DarkBee