web-dev-qa-db-fra.com

si la chaîne contient une sous-chaîne twig

Je me sens un peu factice car je ne peux pas le faire fonctionner ..

J'essaie de vérifier si une chaîne contient une sous-chaîne dans ma brindille.

{% set url = url('<current>') %}
{{ url }}

{% if 'my-delivery' in url %}
    //print something
{% endif %}

L'URL est imprimée en dehors de l'instruction if mais elle n'entre pas dans l'instruction if et l'url contient "my-delivery".

Une idée pourquoi ça ne marche pas?

6
Ismini

La fonction twig url() renvoie un tableau de rendu, lorsque vous le restituez avec le filtre twig filter |render vous obtenez un objet de balisage et lorsque vous le restituez, vous obtenez une chaîne, que vous pouvez vérifier si elle contient une sous-chaîne:

{% set url = url('<current>') %}
{% if 'test' in url|render|render %}
  <p>url contains "test"</p>
{% endif %}
15
4k4

url() renvoie un tableau, comme le dit 4x4. Vous pouvez le voir si vous faites une boucle for sur la variable.

path(), cependant, semble renvoyer une chaîne sur laquelle vous pouvez effectuer votre opération. Mais cela n'inclura pas le nom d'hôte.

2
BWagner