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
答
取决于你有多少地方需要该功能的,你可以把它放在一个宏:
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
看起来不错,不知道该运营商的存在,让我们来看看有没有更好的方法:)。 – nacholibre
只有其他aproach会使用'Twig_SimpleFunction'或'Twig_SimpelFilter' – DarkBee