这是一个与 Vapor ValidationSuite 和 Validator 相关的 Swift Vapor 问题。
我的班级有一个名称变量。我曾经将名称声明为字符串。但我想在这个领域进行验证。所以我继承了经过验证的名称字段的属性。请参阅以下示例代码。
class Name: ValidationSuite {
static func validate(input value: String) throws {
let evaluation = OnlyAlphanumeric.self
&& Count.min(5)
&& Count.max(20)
try evaluation.validate(input: value)
}
}
以下代码显示了我的课程。有趣的点;这继承自 Model 类(因为它连接到数据库)并使用 Node 作为 ID。您可以看到我声明了 name 变量以符合 Name 类型。
final class LedgerUser: Model {
var id: Node?
var name: Name
这会产生一对“表达式类型不明确,没有更多上下文”。我猜这与 Node 从 mySQL 数据库中检索字符串并且不知道如何将其转换为 Name 类型有关?