代码之家  ›  专栏  ›  技术社区  ›  vog

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

  •  0
  • vog  · 技术社区  · 4 年前

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

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

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

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

    第二个问题: 如果第一个问题的答案是“不可能”,那么建议如何组合控制器动作的参数?

    (例如:应该使用数组吗?由于缺乏类型安全性和其他功能,这在Typo3中似乎不是首选。应该创建一个类吗?但那会是什么样的类?实用程序类?模型类?但那个模型类需要被抑制的持久性?这似乎很混乱。)

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

    1 回复  |  直到 4 年前
        1
  •  2
  •   M Klein    4 年前

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

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

    推荐文章