【发布时间】:2021-06-11 23:31:34
【问题描述】:
这就是问题所在。 我有一个名为 Contact 的模块。它位于一个名为 modules/Contact 的目录中。我在 app/Config/Autoload.php 中为模块注册了一个命名空间联系人。一切似乎都很好。现在我想使用自定义验证方法来验证来自表单字段的输入。我的问题是关于最好的方法。我的方法如下:根据 CI4 文档,Validation 类在用于验证时会加载 App/Config/Validation.php。在文件中有一个名为 $ruleSets 的公共属性,它指向一个数组,它包含具有验证规则的类的名称。我想将我自己的带有验证方法的类添加到这个数组中。根据关于验证的 CI4 文档,可以使用注册器更新配置类及其在 App/Config/ 中的公共属性。所以,我在我的联系人模块中创建了一个这样的注册器,一个类。它位于 Contact\Config\Registrar.php 中。该类具有公共静态方法 Validation,它返回一个包含更新的 $ruleSet 的数组。新值是一个数组,包含所有标准验证类名称 + 我的验证类名称。问题是我在注册器中添加的公共静态方法验证似乎不会更改 App/Config/ 中定义的 $ruleSet 的值。 Contact/Config/Registrar.php 已加载,但未调用其中包含的 Validation 方法。那么,添加自定义验证规则而无需更新超出我的模块的文件的最佳方法是什么? CI4 文档中关于注册商的内容很少。我是否误解了它们的工作原理以及应该如何使用它们?
【问题讨论】:
标签: codeigniter-4