如何在 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 - 如何查找用户的最新记录?