未声明的类型'有效',没有这样的模块'验证'

时间:2017-09-21 16:44:51

标签: validation vapor

当我尝试输入

时,我正在跟随Ray Wenderlich(https://videos.raywenderlich.com/screencasts/545-server-side-swift-with-vapor-basic-validation)的屏幕投射(其中没有可编辑的项目)
let input: Valid<OnlyAlphanumeric> = try request.data["input"].validated()

编译器告诉我Valid不存在。我试图找到这个并发现Vapor不再像这样进行验证,而且它使用了不同的行:https://stackoverflow.com/a/45363444/2305517 这是:

guard let input = req.data["input"]?.string else { throw SomeError }
try input.validated(by: OnlyAlphanumeric())

但是,字符串不具有名为validated(by :)的函数

我尝试导入验证,但该模块不存在。

现在有办法完成教程吗?验证似乎根本不在Vapor代码中。

1 个答案:

答案 0 :(得分:4)

您需要将validation-provider包添加到项目中。您可以通过将包添加到Package.swift文件中的依赖关系数组来执行此操作:

对于Swift 3,你可以添加:

.Package(url: "https://github.com/vapor/validation-provider.git", majorVersion: 1)

在Swift 4中,它看起来像这样:

.package(url: "https://github.com/vapor/validation-provider.git", from: "1.0.0"),

然后运行vapor update,如果您使用的是Xcode,请vapor xcode

然后,您可以将ValidationProvider导入到您需要的文件中。

确保将提供者添加到config

try config.addProvider(ValidationProvider.Provider.self)