如何组合验证多个Typo3动作参数?

如何组合验证多个Typo3动作参数?,typo3,typo3-9.x,typo3-extensions,Typo3,Typo3 9.x,Typo3 Extensions,Typo3文档描述了@Validate注解,可用于验证单个控制器操作的参数: 但是,本文仅描述了如何为单个参数添加自定义验证器。可以添加多个验证注释,但它们中的每一个都只能验证单个参数,不能组合验证多个参数 第一个问题:是否可以添加一个验证器,用于检查特定控制器动作的多个参数,甚至所有参数 当然,显而易见的解决方法是在单个参数中组合多个参数,例如使用数组或对象。但是,如果参数本身已经是(独立的)模型对象,这尤其令人恼火 第二个问题:如果第一个问题的答案是“这是不可能的”,那么建议采用什么方

Typo3文档描述了@Validate注解,可用于验证单个控制器操作的参数:

但是,本文仅描述了如何为单个参数添加自定义验证器。可以添加多个验证注释,但它们中的每一个都只能验证单个参数,不能组合验证多个参数

第一个问题:是否可以添加一个验证器,用于检查特定控制器动作的多个参数,甚至所有参数

当然,显而易见的解决方法是在单个参数中组合多个参数,例如使用数组或对象。但是,如果参数本身已经是(独立的)模型对象,这尤其令人恼火

第二个问题:如果第一个问题的答案是“这是不可能的”,那么建议采用什么方式组合控制器操作的参数

(例如:应该使用数组吗?由于缺乏类型安全性和其他功能,在Typo3中似乎不太受欢迎。应该创建一个类吗?但那会是哪种类型的类?实用类?模型类?但该模型类将需要抑制持久性?这似乎很混乱。)


我正在使用Typo3的9.5版,但如果版本10中的内容不同,那也会很有趣。

据我所知,我建议为此使用数据传输对象(DTO)。 如果您的模型必须进行组合验证,但不属于任何其他实体,那么将它们组合到DTO中可能是最好的方法。因此,验证逻辑随后聚集在单个验证器中


另请参阅这篇关于DTO的博文:

据我所知,我建议为此使用数据传输对象(DTO)。 如果您的模型必须进行组合验证,但不属于任何其他实体,那么将它们组合到DTO中可能是最好的方法。因此,验证逻辑随后聚集在单个验证器中


另请参阅这篇关于DTO的博文:

谢谢您的回复!这篇文章很棒,只是遗漏了一个细节:DTO是否有一致的目录和命名风格,比如
Classes/DTO/Foo.php
Classes/Domain/DTO/FooDTO.php
?我不知道。新闻分机是这样做的:谢谢你的回复!这篇文章很棒,只是遗漏了一个细节:DTO是否有一致的目录和命名风格,比如
Classes/DTO/Foo.php
Classes/Domain/DTO/FooDTO.php
?我不知道。新闻分机是这样做的: