# TWIG: String oder nicht String - was läuft falsch bei category\_url()?

**URL:** <https://forum.shopware.com/t/twig-string-oder-nicht-string-was-laeuft-falsch-bei-category-url/99243>\
**Category:** Programmierung\
**Tags:** programming, templates--design\
**Created:** [6. April 2023 um 10:37 UTC](https://forum.shopware.com/t/twig-string-oder-nicht-string-was-laeuft-falsch-bei-category-url/99243 "2023-04-06T10:37:25Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![verpacking](https://avatars.discourse-cdn.com/v4/letter/v/a183cd/32.png) [@verpacking](https://forum.shopware.com/u/verpacking)\
**Post date:** [6. April 2023 um 10:37 UTC](https://forum.shopware.com/t/twig-string-oder-nicht-string-was-laeuft-falsch-bei-category-url/99243/1 "2023-04-06T10:37:25Z")

</div>

Ok, folgender Situation auf einer Kategorieseite:  
Ich habe zuvor die UUID einer Kategorie ermittelt und weise diese einer Variablen zu.

{% set pathId = „1b09fccdfacb486aa4864c83faf32996“ %}

Nun hole ich mir mit der ID die zugehörige Struktur aus dem navigation.tree:  
{% set fullPath = page.header.navigation.tree[pathId] %}

… und füttere mit dem .category-part die Funktion category\_url(), um an die URL der Kategorie zu kommen:  
{% set thisPath = category\_url(fullPath.category) %}

Das Ergebniss auf der Webseite:  
{{ thisPath }}  
[https://mein.shop.de/meine-kategorie](https://mein.shop.de/meine-kategorie)

Die Ausgabe im Debugger:  
{{ dump(thisPath) }}  
„[https://mein.shop.de/meine-kategorie](https://mein.shop.de/meine-kategorie)“

Nun versuche ich einen simplen match a la {% if foo in bar %} auf „meine-kategorie“ und bekomme „null“ als Ergebnis!?  
Nach X versuchen probiere ich dann, die URL am Slash zu splitten:  
{% set pathArr = thisPath|split(„/“) %}  
{{ dump(pathArr) }}

Das ERWARTETE Ergebnis:  
0: „https“  
1: „“  
2: „[mein.shop.de](http://mein.shop.de)“  
3: „meine-kategorie“

Das TATSÄCHLICHE Ergebnis:  
0: „[https://dev.verpacking.com/](https://dev.verpacking.com/)“  
1: „navigation“  
2: „1b09fccdfacb486aa4864c83faf32996“

WTF!!!?! 😶

Offenbar führt SW hier bei der Ausgabe des Ergebnisses von category\_url() irgendeine schräge Ersetzung durch und der Inhalt von thisPath ist - obwohl so dargestellt - alles andere als ein String!

Frage:  
Wie komme ich an die URL als echter String?  
Ich muss einfach nur prüfen, ob „XY“ in der URL vorkommt (true/false) …

Im Forum bin ich schon auf ein ähnliches Problem gestoßen:

> [@TWIG Filter (upper/lower) erzeugen bei Shopware URLs unerwartete Ergebnisse](https://forum.shopware.com/t/twig-filter-upper-lower-erzeugen-bei-shopware-urls-unerwartete-ergebnisse/86893):
>
> Hallo zusammen, ich bin auf ein Problem gestoßen, das mich fast wahnsinnig macht. Im TWIG-Template: {% set can = page.metaInformation.canonical %} {{ can }} ergibt als Ausgabe im Front-End z.B. ‚[https://meine-Domain/meine-Seite](https://meine-Domain/meine-Seite)‘ aus. Soweit, so gut. Wenn ich aber schreibe: {{ can|upper }} führt das zur Ausgabe von: ‚124C71D524604CCBAD6042EDCE3AC799/NAVIGATION/609558B6CD8C45AD9424E2DE5EAA290C#‘ Wenn ich schreibe: {{ can|lower }} wird die unveränderte URL, also ohne lowercase, ausgegeb…

Leider wurde hier keine Lösung gefunden…

---

<div class="post-metadata">

**Author:** ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)\
**Post date:** [6. April 2023 um 11:32 UTC](https://forum.shopware.com/t/twig-string-oder-nicht-string-was-laeuft-falsch-bei-category-url/99243/2 "2023-04-06T11:32:53Z")

</div>

Das ist nicht „irgendeine schräge Ersetzung“, sondern:

> [@lady\_beetle Falsche URL bei Überage von Twig an JS mit seoUrl](https://forum.shopware.com/t/falsche-url-bei-ueberage-von-twig-an-js-mit-seourl/98995/9):
>
> Das liegt daran, weil die SEO Urls im Template erst ersetzt werden, nachdem das gesamte Template gerendert wurde. Sonst hätte man viele Datenbankabfragen bei jedem Produkt. json\_encode() maskiert aber die Slashes und deshalb kann die RAW Url nicht mehr im Template gefunden und ersetzt werden.

---

<div class="post-metadata">

**Author:** ![verpacking](https://avatars.discourse-cdn.com/v4/letter/v/a183cd/32.png) [@verpacking](https://forum.shopware.com/u/verpacking)\
**Post date:** [6. April 2023 um 11:50 UTC](https://forum.shopware.com/t/twig-string-oder-nicht-string-was-laeuft-falsch-bei-category-url/99243/3 "2023-04-06T11:50:52Z")

</div>

Na suuupi… 😑  
Den Grund find ich natürlich merkwürdig, die DB-Abfrage für die RAW Url muss ja letztlich trotzdem gemacht werden, sonst hätte ich keine Ausgabe. Aber ich muss ja nicht alles verstehen…

Trotzdem Danke für Deine Antwort! 😇
