Zum Inhalt springen

TYPO3 9 Routing - der URL-Parameter wird vom default der Konfiguration überschrieben

Erstellt am 16. April 2020 · Noch keine Antworten

Tags: URLs & Routing, Frage

markenwirt ·

Hey Leute,
in Englisch steht es schon auf stackoverflow (https://stackoverflow.com/questions/61228879/typo3-9-routing-the-parameter-gets-overwritten-by-the-defaults), aber ich versuche Mal jede Möglichkeit um eine Antwort zu finden. URL-Routing ist dann doch relativ wichtig für einen baldigen Onlinegang. 🙂

Ich versuche mit meinem Code die URL /maincategory/subcategory/ aus meinen Extbase-Parametern zu generieren. Und das funktioniert auch, die URL sieht bei mir genau so aus mit dem Code der gleich folgt, aber ich bekomme nur den einen Wert (mwWsCategory) in Extbase übergeben. Der Wert 2 (mwWsCategory2) wird vom default meiner site-Konfiguration immer überschrieben. In der aktuellen Konfiguration wird es dann '', aber ich hatte dort schon null stehen oder 0, dann bekomme ich in Extbase halt null oder 0.

Meine Idee war also, ich entferne den "defaults"-Wert und auch dann funktioniert meine URL-Struktur wie ich möchte UND ich bekomme den Parameter (mwWsCategory2) übergeben, aber der Parameter mwWsCategory2 soll optional sein. Damit funktioniert also /maincategory/ nicht, sondern wird komplett ignoriert. Also den "defaults"-Wert wieder hinzugefügt, weil der ja für optionale Parameter zuständig ist.

Meine zweite Idee war dann, dass ich "categoryname2" unter "aspects" entferne. Also den ganzen PersistedAliasMapper-Kram für "categoryname2" raus. Und ja, die URL sieht dann zwar /maincategory/2/ aus, aber der Parameter (mwWsCategory2) wird mir in Extbase übergeben. Es muss also irgendwie eine Kombination aus "defaults" und "aspects" sein. Eventuell ein Fehler im System? Weil mit einem StaticValueMapper geht es ja bei der news-Extension. Nur bei dem PersistedAliasMapper macht es bei mir Probleme.

routeEnhancers:
  Werbemittelshop:
    type: Extbase
    extension: Mwwerbemittelshop
    plugin: Mwwerbemittelshop
    routes:
      - routePath: '/{categoryname}/{categoryname2}'
        _controller: 'MwWsCategories::category'
        _arguments:
          categoryname: 'mwWsCategory'
          categoryname2: 'mwWsCategory2'
    defaults:
      categoryname2: ''
    defaultController: 'MwWsCategories::category'
    aspects:
      categoryname:
        type: PersistedAliasMapper
        tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
        routeFieldName: slug
      categoryname2:
        type: PersistedAliasMapper
        tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
        routeFieldName: slug

Ich bin euch dankbar für jede Hilfe!