首页 > 解决方案 > Vapor 4 Fluent 创建模型不会将其保存到数据库中

问题描述

我刚开始使用 Vapor 4,我创建了一个 POC 来测试如何将模型保存到本地 mySQL 数据库中。

这是我用于将模型保存到数据库的控制器的代码。

public class ProductController {
static func create(req: Request) throws -> HTTPStatus {
    do {
        let input = try req.content.decode(Product.self)
        let product = Product(name: input.name, imageUrl: input.imageUrl, priceAmount: input.priceAmount, priceCurrencyCode: input.priceCurrencyCode, category: input.category)
        let _ = input.create(on: req.db).map {
            print("Product saved")
        }
        return HTTPStatus.ok
    } catch {
        return HTTPStatus.badRequest
    }
}

出于某种原因,“已保存的产品”永远不会被打印出来,因此永远不会调用闭包。当我签入数据库时​​,表 products 始终为空。

预先感谢您的帮助!

卡里姆

标签: mysqlswiftvaporvapor-fluent

解决方案


尝试保存产品而不是输入:

return product.create(on: req.db).map { print("Product saved") }
       .transform(to: .ok)

推荐阅读