在 Vapor 命令中使用 Fluent

Posted

技术标签:

【中文标题】在 Vapor 命令中使用 Fluent【英文标题】:Using Fluent in a Vapor Command 【发布时间】:2021-03-24 15:27:41 【问题描述】:

我正在尝试在命令中使用 Fluent,但遇到了这个问题:

关于这个查询:

let location: Location? = try? Location.query(on: context.application.db).filter(\.geId == 123).first().wait()

我得到: Type of expression is ambiguous without more context"


当我删除过滤器时,一切都很好:

let location: Location? = try? Location.query(on: context.application.db).first().wait()

当我将 var 设为非可选时:

let location: Location = try? Location.query(on: context.application.db).filter(\.geId == 123).first().wait()

我得到: Cannot convert value of type 'Location?' to specified type 'Location'

相同的查询正在使用 flatMap 而不是 wait()

处理 Route

所以,我有点困惑。我的错误在哪里?

【问题讨论】:

【参考方案1】:

这是一个简单的... 只是错过了

import Fluent

感谢 Discord 的 @0xTim :)

【讨论】:

以上是关于在 Vapor 命令中使用 Fluent的主要内容,如果未能解决你的问题,请参考以下文章

使用Swift4+Vapor写后端-初体验

在 MariaDB 中保存 UUID 以用于 Vapor

在 Vapor 4 中使用 Fluent 进行复杂查询

如何使用 Vapor 4 在 Leaf 模板中格式化日期字段

在纯 Swift (Vapor) 项目中拥有 HMAC SHA256

需要 ID 属性名称的 Vapor 4 关系和模型