TYPO3 Symfony表达式:用于查询参数的isset()吗?

时间:2019-07-11 08:46:02

标签: symfony typo3 typoscript

我在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()的内容?

2 个答案:

答案 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]