これは、Vapor ValidationSuite および Validator に関連する Swift Vapor の質問です。
私のクラスには name 変数があります。名前を文字列として宣言していました。しかし、このフィールドで検証を実行したかったのです。そこで、検証済みの Name フィールドの属性を継承しました。次のコード例を参照してください。
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 クラスから継承し、ID に Node を使用します。Name 型に準拠するように name 変数を宣言したことがわかります。
final class LedgerUser: Model {
var id: Node?
var name: Name
これにより、いくつかの「式のタイプがあいまいであり、コンテキストがありません」が生成されます。ノードが mySQL データベースから文字列を取得し、それを Name 型にキャストする方法がわからないことに関連していると思いますか?