当我尝试输入
时,我正在跟随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代码中。
答案 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)