当前位置: 首页 > 知识库问答 >
问题:

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

易京
2023-03-14

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

  • https://docs.typo3.org/m/typo3/book-extbasefluid/master/en-us/9-CrosscuttingConcerns/2-validating-domain-objects.html

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

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

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

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

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

我使用的是Typo3的9.5版本,但是如果版本10中的情况不同,那也会很有趣。

共有1个答案

顾宸
2023-03-14

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

另见这篇关于DTO的博客文章:https://usetypo3.com/dtos-in-extbase.html

 类似资料:
  • 我正在更新一个在TYPO3 v10或更高版本中使用的扩展,并且有一个常规表达式验证器的问题,我不知道如何在v10或更高版本中运行。尝试了以下方法: 但我有以下例外: 我做错了什么以及如何修复它,或者对于操作参数的RegularExpression验证器现在的正确定义是什么?

  • 问题内容: 我正在使用JPA 2.0 /hibernate验证来验证我的模型。我现在遇到一种情况,必须验证两个字段的组合: 该模型是无效的,如果都和都null和其他有效。 如何使用JPA 2.0 / Hibernate执行这种验证?使用简单的注释,两个吸气剂都必须为非null才能通过验证。 问题答案: 对于多属性验证,应使用类级别的约束。摘自 Bean Validation Sneak Peek第

  • 问题内容: 我想验证以下行为的方法如下。 在我的@Test类中,我希望做这样的事情来验证是否使用“ exception.message”和再次使用“ exception.detail”进行了调用 但是Mockito抱怨​​如下 我如何告诉Mockito检查两个值? 问题答案: 进一步的阅读使我尝试使用ArgumentCaptors和以下作品,尽管比我想要的更为冗长。

  • 本文向大家介绍laravel 表单验证实现多个字段组合后唯一,包括了laravel 表单验证实现多个字段组合后唯一的使用技巧和注意事项,需要的朋友参考一下 Laravel 表单验证器的几种使用方法 1、使用控制器的 validate 方法进行参数验证 2、手动创建验证器实例进行验证 使用默认的验证信息 使用自定义的验证信息 3、创建表单请求进行验证 创建表单请求文件:php artisan mak

  • 我有一个小片段,用于使用我自己的Typo3扩展名登录用户: 在流体模板中,我可以检查用户是否使用以下内容登录: 然而,此代码仅适用于在控制器中执行的下一个操作。当网页前端工程师用户重新加载页面时,身份验证丢失,并且$GLOBALS["TSFE"]- 为什么会发生这种情况?

  • 问题内容: 我为嵌套对象具有以下索引架构: 数据如下: 现在,如果我做一些简单的查询,例如找到“ isCurrentWorkplace”为true且title.id为259的工作场所,则它可以正常工作: 现在的问题是,我需要组合这些必须子句。例如,我需要找到一条记录,其“ isCurrentWorkplace”为true,“ title.id”为259 AND “ isCurrentWorkpla