Сложно дать вам ответ, используя код в вашем вопросе, но, надеюсь, это даст вам достаточно указателей, чтобы начать работу.
Создайте структуру для хранения информации, которую вы хотите отправить в представление.от результатов вашего запроса до View
.Убедитесь, что это Encodable
.У меня нет простого примера использования Future
, но что-то вроде следующего может легко включать [Future<Location>]
struct AllLocationsContext: Encodable {
let title: String
let hideInactiveLocations: Bool
let locations: [Location]
}
Затем добавьте flatMap
к вашему запросу и вставьте как создание ваших параметровструктура и return
, который создает View
.
locations.get("/")
{
request -> Future<View> in
let title = "Events (Active and Inactive)"
return Location.query(on:request).sort(\.name).all().flatMap(to: View.self) {
locations in
let context = AllLocationsContext(title: title, hideInactiveLocations: hideInactiveLocations, locations: locations)
return try request.view().render("locations",context)
}
}