Как определить проверку RegularExpresion для параметра действия контроллера в TYPO3 v10/v11?

#php #typo3 #extbase #typo3-10.x #typo3-11.x

#php #опечатка3 #extbase #опечатка 3-10.x #опечатка 3-11.x

Вопрос:

Я обновляю расширение для использования в TYPO3 v10 или выше, и у меня проблема с валидатором регулярных выражений, я не знаю, как теперь запустить его в версии 10 или выше. Попробовал следующее:

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

Но у меня есть следующее исключение:

 Invalid validate annotation in ABCMyExtControllerMyController-gt;listAction(): The following validators have been defined for missing param "$": RegularExpression  

Что я делаю не так и как я могу это исправить, или каково правильное определение теперь для валидатора регулярных выражений для параметра действия?

Ответ №1:

Нашел решение. Мне пришлось добавить параметр=»…»

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

Таким образом, полное решение выглядит следующим образом:

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