Hallo,
ich habe eine Extabse Extension die aus einer DB Daten als Facetten suche abbildet. Ich möchte nun das routing von TYPO3 10 nutzen. Allerdings bekomme ich nicht die korrekte URL.
Beispiel:
in der URL steht:
https://localhost/fahrzeugsuche?tx_carportal_carlist%5Baction%5D=list&tx_carportal_carlist%5Bbrand%5D=AUDI&tx_carportal_carlist%5Bcontroller%5D=Car&tx_carportal_carlist%5Bdetailsuche%5D=0&tx_carportal_carlist%5Btop%5D=0&cHash=bb06b129829b8cd35ac034973ce7e799
das bekomme ich mit:
- routePath: '/marke/{brand}/{top}/{detailsuche}'
_controller: 'Car::list'
_arguments:
brand: brand
requirements:
top: '\d+'
detailsuche: '\d+'
zu:
https://localhost/angebote-deals/fahrzeugsuche/marke/AUDI/0/0?cHash=b65eaee3446938520b532dfbd90d617a
Das scheint nicht genau genug zu sein, da der chash noch drin ist.
sowie für das Modell:
- routePath: '/{baureihe}'
_controller: 'Car::list'
_arguments:
baureihe: baureihe
defaults:
top: ''
detailsuche: ''
ABER:
es gibt weitere Parameter die dynamisch dazu kommen können:
Z.B das Modell
Wenn ich die Marke gewählt habe und nun ein Modell auswählen möchte, ist die Marke weg bzw. taucht in der URL nicht mehr auf. Ohne routing ist sie in der Url vorhanden.
Warum wird die Marke nicht bei Modell auch mit reingenommen?
Normalerweise müsste dort stehen
https://localhost/angebote-deals/fahrzeugsuche/marke/AUDI/A1/0/0?cHash=b65eaee3446938520b532dfbd90d617a
steht aber nur
https://localhost/angebote-deals/fahrzeugsuche/A1/0/0?cHash=b65eaee3446938520b532dfbd90d617a
Vielen Dank für eure Hilfe
Tom
Wenn du jemanden gefunden hast der dir das tatsächlich richtig und verständlich erklären kann - gib bescheid...
Auch wenn ich sowas jetzt schon öfter machen musste, im Endeffekt ist es immer noch try and error... bei den etwas komplexeren...
Aber wo setzt du denn an? Wo kann man das einigermaßen debuggen ? Es gibt nur News Beispiele die einen nicht wirklich helfen.
Moin @tom_meier,
dein RoutePath müsste für dein geschildertes Problem unten wahrscheinlich auch eher wie folgt aussehen:
- routePath: '/marke/{brand}/{baureihe}'
Dadurch das du '/{baureihe}' als Pfad angibst, überschreibt er dir ausgehend von der Base-URL eben wieder alles. Entsprechend musst du die Argumente noch erweitern, also Brand hinzufügen.
Wenn du Automarken hast die mit Leerzeichen getrennt sind, z. B. "Alfa Romeo" setzt er dir die URL zwar und sie lässt sich aufrufen (auch mit Leerzeichen in der URL), aber hier würde ich eventuell mit den "Aspects" arbeiten und auf den "Slug" des Datensatzes zurückgreifen. Sofern du welche generierst, der macht dir dann quasi aus "Alfa Romeo" entsprechend "alfa-romeo", was als URL-Struktur etwas schöner ist.
Viele Grüße