You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Twig框架:双条件if语句逻辑调整,锚标签显示规则求助

解决Twig中锚标签显示的逻辑条件问题

嗨,这问题其实就是个逻辑取反的小坑,我来帮你理清楚~

你现在写的代码是只有当两个条件同时满足时才显示<a>标签,但你的需求正好相反:要让标签在所有情况都显示,除了两个条件同时满足的时候。

正确的写法有两种,效果完全一致:

写法1:直接对整个条件取反

用not把你原来的条件整个包裹起来,这样就会在不满足原条件的时候显示标签:

{% if not (app.user.username == item.email and 'delete' == action.name) %}
    <a href="">...</a>
{% endif %}

写法2:利用德摩根定律拆分逻辑

根据逻辑运算的德摩根定律,not (A and B) 等价于 not A or not B,所以也可以写成这样,可读性可能更好:

{% if app.user.username != item.email or 'delete' != action.name %}
    <a href="">...</a>
{% endif %}

简单说就是:只要用户用户名不等于item邮箱,或者当前动作不是delete,这两个情况任意一个成立,就显示标签;只有当两个条件都凑齐(用户是item的邮箱持有者,且动作是delete)的时候,才不显示。

内容的提问来源于stack exchange,提问作者naspy971

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:20:15