You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3 9/10下如何编写TypoScript条件判断POST参数非空

TypoScript判断POST参数非空的正确写法(TYPO3 9/10+适用)

原写法失效原因

你使用的traverse函数调用方式不符合语法要求,traverse用于安全遍历嵌套结构避免键不存在报错,需要将待遍历对象作为第一个参数,键路径作为第二个参数传入。

不同场景的正确实现

1. 严格判断仅POST参数存在且非空

优先判断请求为POST类型,再校验参数,避免非POST请求下getParsedBody()返回null引发异常:

[request.getMethod() === 'POST' && traverse(request.getParsedBody(), 'ttp_basket') && trim(traverse(request.getParsedBody(), 'ttp_basket')) !== '']
plugin.tt_products = USER_INT
[global]

2. 兼容GET+POST参数(和旧版本GP:ttp_basket逻辑完全一致)

如果不需要严格限制参数来源,推荐用TYPO3封装的gp()快捷方法,写法更简洁:

[gp('ttp_basket') !== null && trim(gp('ttp_basket')) !== '']
plugin.tt_products = USER_INT
[global]

该写法和TYPO3 8.7及更早版本的[globalVar = GP:ttp_basket != '']功能完全等价,适配性更好。


内容的提问来源于stack exchange,提问作者Franz Holzinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:54:04