2016-10-12 2 views
0

Ich habe diesen Inline-Fluid Aufruf:TYPO3 Fluid uri Aktion Parameter ignorieren?

{f:uri.action(pageUid: 102, action: 'getFile', noCacheHash: true, additionalParams: {id: 102})} 

Jedoch scheint es, wie die Parameter "pageUid", "noCacheHash" und "additionalParams" ignoriert werden, da die resultierende URL wie folgt aussieht:

http://www.example.com/excontroller/?no_cache=1&tx_excontroller_bmbf%5Baction%5D=getFile&tx_excontroller_bmbf%5Bcontroller%5D=excontroller&cHash=cec99a845beead4fe9f3863494abf1c7 

Da es sich um einen Ajax-Anruf handelt, würde ich das cHash gerne deaktivieren. Oder zumindest übergeben Sie die PageUid, so bekomme ich nicht die "cHash Berechnung" -Error.

Also, fehlt mir etwas? Warum werden die Parameter nicht angewendet?

Antwort

1

Wie für die noCacheHash: true Ich denke, dass Flüssigkeit interpretiert die wahre als ob es eine Varibale wäre. Versuchen Sie stattdessen noCacheHash: 1.

Für additionalParams sind das Parameter, die nicht vorangestellt sind. Wenn Sie möchten, dass sie genau wie die Aktion vorangestellt werden, verwenden Sie arguments.

Edit: Entfernt schlechten Rat von der Antwort. Danke, Claus.

+1

Entschuldigen Sie, wenn ich mich einrüste, aber die Empfehlung, einzelne Anführungszeichen um das Array zu setzen, rate ich dringend davon ab. Eine ausführliche Begründung finden Sie unter https://vimeo.com/167666466, aber kurz gesagt: Dies wird zu einem nicht unterstützten Anwendungsfall und wird nicht länger in Fluid Standalone behandelt. Die andere Empfehlung, "1" anstelle von "wahr" zu verwenden, ist absolut richtig und sehr verpflichtend. Es wird als eine Variablenreferenz gesehen, die 'null' als Wert enthält und die, anders als beabsichtigt, Boolean 'false' ergibt. –

+0

Danke Claus für den Kommentar. Dies bedeutet, dass '{f: uri.action (Argumente: {id: 102})}} korrekt ist? Ehrlich gesagt habe ich nichts davon getestet :) – Daniel

+0

'{f: uri.action (Argumente: {id: 102})}' ist die richtige Syntax, aber vergiss nicht, dass dieser bestimmte ViewHelper ein obligatorisches 'action' Argument hat, also Vielleicht möchtest du ein Dummy-Argument hinzufügen, um es richtig zu schreiben und zu korrigieren;) –