Twig 数组的细枝检查元素位于另一个数组中

Twig 数组的细枝检查元素位于另一个数组中,twig,Twig,我试图在twig中检查一个数组的任何元素是否在另一个数组中设置。 例如: 我有['ROLE\u ADMIN','ROLE\u MANAGER']的user.roles,我有['ROLE\u ADMIN','ROLE\u user']的product.roles 我想检查(在细枝中)product.roles中是否有任何user.roles,如: {{ user.roles[0] is product.roles|keys }} 但是每个user.roles元素都在同一个函数中 有人知道怎么做吗

我试图在twig中检查一个数组的任何元素是否在另一个数组中设置。 例如:

我有
['ROLE\u ADMIN','ROLE\u MANAGER']
的user.roles,我有
['ROLE\u ADMIN','ROLE\u user']
的product.roles

我想检查(在细枝中)product.roles中是否有任何user.roles,如:

{{ user.roles[0] is product.roles|keys }}
但是每个user.roles元素都在同一个函数中

有人知道怎么做吗?

使用for循环:

{% for role in user.roles %}
  {% if role in product.roles|keys %}
    do something...
  {% endif %}
{% endfor %}
使用for循环:

{% for role in user.roles %}
  {% if role in product.roles|keys %}
    do something...
  {% endif %}
{% endfor %}
您可以使用过滤器来实现这一点,但是猜测最好将其移动到
PHP
/
TwigExtension

{% if user.roles |filter((role) => role in product.roles) | length > 0 %}
    Can do something with the post
{% else %}
    Access denied
{% endif %}

您可以使用过滤器来执行此操作,但是猜测最好将其移动到
PHP
/
TwigExtension

{% if user.roles |filter((role) => role in product.roles) | length > 0 %}
    Can do something with the post
{% else %}
    Access denied
{% endif %}

如果授予两个或多个角色,您将有多个输出。如果授予两个或多个角色,您将有多个输出。谢谢@DarkBee!,真管用!但最后我制作了一个Symfony投票者,以使用在twig和controller中授予的is_:)。但是你的解决方案也很有效:)很高兴听到你这样解决了这个问题。你采取的方法比在纯twigThanks@DarkBee!中这样做要好得多!,真管用!但最后我制作了一个Symfony投票者,以使用在twig和controller中授予的is_:)。但是你的解决方案也很有效:)很高兴听到你这样解决了这个问题。你用的方法比用纯树枝做的要好得多