Необъявленный тип 'valid', такой модуль 'Validation' отсутствует
Я следил за показом фильма Рэя Вендерлиха ( https://videos.raywenderlich.com/screencasts/545-server-side-swift-with-vapor-basic-validation) (который не имеет компилируемого проекта), когда Я пытался набрать
let input: Valid<OnlyAlphanumeric> = try request.data["input"].validated()
И компилятор сказал мне, что Valid не существует. Я попытался найти это и обнаружил, что Vapor больше не выполняет такую проверку и использует разные строки, найденные здесь: /questions/8650276/vapor-2-validation-valid-throws-ispolzovanie-neobyavlennogo-tipa-valid/8650288#8650288 которые:
guard let input = req.data["input"]?.string else { throw SomeError }
try input.validated(by: OnlyAlphanumeric())
Однако строки не имеют функции с именем validated(by:)
Я попытался импортировать проверку, но модуль не существует.
Есть ли способ завершить учебник сейчас? Валидация, по-видимому, вообще не включена в код Vapor.
1 ответ
Вам нужно добавить пакет провайдера проверки в ваш проект. Вы можете сделать это, добавив пакет в массив зависимостей в вашем 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)