我在TypoScript中使用了几个Symfony表达式来检查查询参数,例如:
[request.getQueryParams()['tx_news_pi1']['news'] > 0]
do something
[END]
这很好-只要查询参数存在即可。如果不是,则会将以下错误消息写入日志文件:
Unable to get an item on a non-array.
在PHP中,我将使用isset()
来检查查询参数是否存在-但在TypoScript中找不到Symfony表达式的类似方法。我尝试过
[request.getQueryParams()['tx_news_pi1']['news']]
的工作原理相同,意思是:它可以执行预期的操作,但是如果查询参数不存在,则会记录一条错误消息。
TYPO3中的Symfony表达语言是否有类似isset()
的内容?
答案 0 :(得分:1)
条件所返回的我正在寻找的is_defined()
或isset()
[request.getQueryParams()['tx_news_pi1']]
代替
[request.getQueryParams()['tx_news_pi1']['news']]
在我的用例中,这甚至足够了。如果您需要更精确的(例如,区分同一插件中的不同查询参数),请
[request.getQueryParams()['tx_news_pi1'] && request.getQueryParams()['tx_news_pi1']['news'] > 0]
该解决方案是对bug report on forge.typo3.org的答复
答案 1 :(得分:0)
尝试一下:
[request.getQueryParams()['tx_news_pi1']['news'] = ]
do something
[END]