如何在 TYPO3 v10/v11 中为控制器操作参数定义正则表达式验证?

Posted

技术标签:

【中文标题】如何在 TYPO3 v10/v11 中为控制器操作参数定义正则表达式验证?【英文标题】:How to define a RegularExpresion Validation for an Controller Action Param, in TYPO3 v10/v11? 【发布时间】:2022-01-15 17:43:02 【问题描述】:

我正在更新用于 TYPO3 v10 或更高版本的扩展,但正则表达式验证器存在问题,我现在不知道如何在 v10 或更高版本中运行。尝试了以下方法:

/**
 * action list
 *
 * @param string $filterChar
 * @Extbase\Validate("RegularExpression",options= "regularExpression": "/^[0-9A-Za-z]0,1$/i" )
 * @return void
 */
public function listAction(string $filterChar = '') 

但我遇到了以下异常:

Invalid validate annotation in ABC\MyExt\Controller\MyController->listAction(): The following validators have been defined for missing param "$": RegularExpression

我做错了什么以及如何解决它,或者现在对于动作参数的正则表达式验证器的正确定义是什么?

【问题讨论】:

【参考方案1】:

找到了解决办法。我必须添加 param="..."

@Extbase\Validate("RegularExpression",options= "regularExpression": "/^[0-9A-Za-z]0,1$/i" , param="filterChar")

所以完整的解决方案如下所示:

/**
 * action list
 *
 * @param string $filterChar
 * @Extbase\Validate("RegularExpression",options= "regularExpression":"/^[0-9A-Za-z]0,1$/i" , param="filterChar")
 * @return void
 */
public function listAction(string $filterChar = '') 

【讨论】:

以上是关于如何在 TYPO3 v10/v11 中为控制器操作参数定义正则表达式验证?的主要内容,如果未能解决你的问题,请参考以下文章

TYPO3 QueryBuilder - 如何查找用户的最新记录?

TYPO3 扩展如何限制 findAll(最佳实践)

如何在typo3 V10的extbase控制器中重定向到404页面

如何在 TYPO3 中获取当前页面的 ID

TYPO3 v10 动作控制器和子文件夹内的模板

请问;如何把0-10V电压信号变换成4-20mA电流信号?