【问题标题】:How to validate multiple Typo3 action parameters in combination?如何组合验证多个 Typo3 动作参数?
【发布时间】:2021-04-12 18:02:20
【问题描述】:

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

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

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

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

第二个问题:如果第一个问题的答案是“不可能”,那么推荐的结合控制器动作参数的方法是什么?

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

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

【问题讨论】:

    标签: typo3 typo3-9.x typo3-extensions


    【解决方案1】:

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

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

    【讨论】:

    猜你喜欢
    • 2011-02-16
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    相关资源
    最近更新 更多