如何始终 return Vapor 3 和 Fluent 中的数组(即使对于单个实体请求)
How to always return an array in Vapor 3 and Fluent (even for single entity requests)
我想要一个索引控制器函数,如果没有设置请求参数,returns 一个实体数组;如果设置了 id 参数,我想要一个实体。但是,我希望始终收到一个数组,在后一种情况下它只包含一个元素。
这是我的函数:
final class AddressController {
func index(_ req: Request) throws -> Future<[Address]> {
if let id = try? req.query.get(UUID.self, at: "id") {
// THIS IS NOT WORKING...
return Address.find(id, on: req)
} else {
return Address.query(on: req).all()
}
}
}
final class AddressController {
func index(_ req: Request) throws -> Future<[Address]> {
if let id = try? req.query.get(UUID.self, at: "id") {
return Address.find(id, on: req).map {
guard let address = [=10=] else { return [] }
return [address]
}
} else {
return Address.query(on: req).all()
}
}
}
我想要一个索引控制器函数,如果没有设置请求参数,returns 一个实体数组;如果设置了 id 参数,我想要一个实体。但是,我希望始终收到一个数组,在后一种情况下它只包含一个元素。
这是我的函数:
final class AddressController {
func index(_ req: Request) throws -> Future<[Address]> {
if let id = try? req.query.get(UUID.self, at: "id") {
// THIS IS NOT WORKING...
return Address.find(id, on: req)
} else {
return Address.query(on: req).all()
}
}
}
final class AddressController {
func index(_ req: Request) throws -> Future<[Address]> {
if let id = try? req.query.get(UUID.self, at: "id") {
return Address.find(id, on: req).map {
guard let address = [=10=] else { return [] }
return [address]
}
} else {
return Address.query(on: req).all()
}
}
}