如何在Timber/Twig中单行编写多个if判断条件
你原先的写法不生效的核心原因是 not 'Booked' 没有绑定变量做判断,本质是直接对固定字符串取布尔值后取反,非空字符串在这类模板引擎中默认判定为真值,取反后恒为假,所以整个条件永远不会触发。
正确的单行多条件实现方案
直接在同一个if标签内用and拼接两个完整的判断表达式即可,和你两层嵌套的写法逻辑完全等价:
{% if room_status == 'For Rent' and room_status != 'Booked' %} {# <Then run some code here> #} {% endif %}
额外简化建议
如果你的业务逻辑里For Rent和Booked是互斥的状态(即房间状态不可能同时为这两个值),那你完全可以只保留第一个判断条件,不需要额外加不等于Booked的校验,代码可以进一步简化:
{% if room_status == 'For Rent' %} {# <Then run some code here> #} {% endif %}
内容的提问来源于stack exchange,提问作者ShrockCo
相关产品推荐
相关产品推荐

