Элементы проверки веток массива находятся в другом массиве - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь проверить веточку, если какой-либо элемент одного массива установлен в другом массиве. Пример:

У меня есть user.roles с ['ROLE_ADMIN','ROLE_MANAGER'], а у меня product.roles с ['ROLE_ADMIN','ROLE_USER'].

Я хочу проверить (в Twig), есть ли какие-либо user.roles в product.roles, например:

{{ user.roles[0] is product.roles|keys }}

Но с каждым элементом user.roles в одной и той же функции.

Кто-нибудь знает, как?

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Вы можете использовать фильтр filter, чтобы сделать это, но предположите, что было бы лучше переместить это в PHP / TwigExtension

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

демо

0 голосов
/ 03 апреля 2020

Используйте для l oop:

{% for role in user.roles %}
  {% if role in product.roles|keys %}
    do something...
  {% endif %}
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...