如何摆脱基于pi的扩展中的cHash-Parameter?手册说:
“需求部分准确地指定应该将哪种参数作为正则表达式添加到该路由。这样,它可配置为仅允许整数值,例如分页。如果要求太松散,则为URL签名参数(”cHash“ )被添加到URL的末尾,无法删除。“
但严格是多么严格?我的配置:
Lexikon:
type: Plugin
limitToPages: [2140]
routePath: '/eintrag/{eintrag}/{buchstabe}'
namespace: 'tx_mcflexikon_pi1'
requirements:
buchstabe: '[A-Z]{1}'
eintrag: '[0-9]{1,4}'
default:
buchstabe: 'A'
eintrag: '0'
我不知道如何定义除这些之外的更严格的规则:1个字母和1到4个数字。
谢谢!
好几个小时后我发现了一个解决方法。似乎部分要求中的定义对cHash-Handling并不重要。更重要的是方面部分。如果我为每个参数定义了一个方面,那么cHash就会消失:
Lexikon:
type: Plugin
limitToPages: [2140]
routePath: '/eintrag/{buchstabe}/{eintrag}'
namespace: 'tx_mcflexikon_pi1'
requirements:
buchstabe: '[A-Z]{1}'
eintrag: '[0-9]{1,4}'
default:
buchstabe: 'A'
eintrag: '0'
aspects:
eintrag:
type: PersistedAliasMapper
tableName: 'tx_mcflexikon_daten'
routeFieldName: 'slug'
buchstabe:
type: StaticValueMapper
map:
A: 'A'
B: 'B'
C: 'C'
D: 'D'
E: 'E'
G: 'G'
H: 'H'
I: 'I'
J: 'J'
K: 'K'
L: 'L'
M: 'M'
N: 'N'
O: 'O'
P: 'P'
Q: 'Q'
R: 'R'
S: 'S'
T: 'T'
U: 'U'
V: 'V'
W: 'W'
X: 'X'
Y: 'Y'
Z: 'Z'
定义每个字母有点烦人,但我发现没有其他可能性; StaticRangeMapper和PersistedAliasMapper在此上下文中不起作用。
也许有可能定义一个自定义映射器,它不会欺骗系统。另一方面:这显然会导致安全问题。