问题标签 [vapor-fluent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - Fluent中如何确保所有数据库操作在数据库关闭之前完成?
Fluent 操作以异步方式工作,并在操作完成时返回 EventLoopFuture。那么,如果代码使用数据库shutdown
调用,有没有办法确保在数据库关闭之前完成所有启动的数据库操作?
例如,下面的代码编译良好,但不能确保在数据库中插入建筑对象(Building
是一个 Fluent Model
。)。另一方面,如果我将wait
函数与函数一起使用create
,则操作会同步,但会确保在数据库中创建建筑记录。
有没有办法dbs.shutdown()
等到create
操作(或任何启动的数据库操作)完成?
swift - Vapor 4:子关系未急切加载,使用 $ 前缀访问
目前我正在做一个学校作业,我们必须使用 Vapor 构建一个 API。我有一些基本的 API 调用正在工作,我现在正在尝试一些更高级的 API 调用,但我无法让它工作。
当使用正文调用addToParty
URL 时,我有这个函数被调用/party/join/:partyID
我正在尝试通过partyId 找到一个聚会并将用户添加到聚会的用户列表中。
当我尝试上面的代码时,我Fatal error: Children relation not eager loaded, use $ prefix to access: Children<Party, User>(for: [party_id]): file FluentKit/Children.swift, line 33
从该行得到错误
当我评论这一行时,代码运行,我得到一个返回码。
我尝试将前缀添加到element.$users
,$User
但随后它抱怨无法找到element.$users
并$User
在范围内。
Party model
User model
我有一个类似的功能来更新已经工作的用户的用户名,这几乎是一样的。
任何帮助将非常感激。先感谢您。
mysql - Vapor 4 Fluent 创建模型不会将其保存到数据库中
我刚开始使用 Vapor 4,我创建了一个 POC 来测试如何将模型保存到本地 mySQL 数据库中。
这是我用于将模型保存到数据库的控制器的代码。
出于某种原因,“已保存的产品”永远不会被打印出来,因此永远不会调用闭包。当我签入数据库时,表 products 始终为空。
预先感谢您的帮助!
卡里姆
swift - 创建实例集 id,虽然它应该是 nil
我正在做一个流利的小型蒸汽项目。现在我应该能够创建一个用户,为所述创建的用户创建一个令牌并返回带有会话令牌的用户。之后我应该能够登录并创建一个新令牌。
现在的问题是,每当我创建一个令牌时,id
所述令牌的值设置为1
,即使我将它设置为nil
。创建用户时不会发生这种情况,然后自动增量按预期工作。
我使用的数据库是 MySQL。
我的迁移CreateTokens.swift
:
我的令牌 ( Token.swift
):
在我的用户结构中,当我创建一个令牌时:
如果我在并打印出令牌上设置断点return token
,我会得到以下信息:
ID 值设置为1
,但是在代码中(对我而言)很清楚我已将其设置为nil
. 即使我token.id = nil
在返回之前添加,它仍然设置为1
.
我在这里做错了什么?还是我偶然发现了一个流利的错误?
enums - 枚举给出蒸汽 4 和流利的错误
这让我很困惑:
我有一个模型,我想在其中使用枚举。我首先声明枚举:
然后它在我的班级领域:
然后我使用迁移在数据库中创建它:
到目前为止,一切都很好。此迁移有效,并且数据库看起来没问题。但是当我想在另一个迁移中添加一些数据来为数据库做种时,我得到一个错误:
不幸的是,这个错误并不能真正帮助查明问题的根源
fluent - 返回子值和兄弟值作为响应
这可能是一个微不足道的问题,但我无法解决它,也没有找到答案。
我有 3 个相互关联的表作为父子和兄弟姐妹。我想从所有表和相同的 JSON 响应中返回一些值。
我想返回那个模型:
所以我现在使用的查询看起来像这样
它显然不起作用,因为它返回[ClimbingGym]
而不是[ClimbingGymResponse]
.
那么我怎样才能将一个转换为另一个呢?
我在每个健身房的填充disciplines: [ClimbingDisciplineType]
和socialNetworks: [String]
场地方面都有问题
谢谢!
postgresql - 如何存储带有小数字段的 Vapor Fluent 模型
我有一个需要 type的Fluent
(支持的)模型,但我只能存储/ 。Postgres
Decimal
.float
.double
上述带有迁移的模型将失败。如果这不容易实现(就像.string
or一样容易.double
),有没有办法获得类似于 type Decimal
in的行为Fluent
?
swift - 访问数据库对象突然抛出 EXC_BAD_INSTRUCTION
我有一个我自己无法解决的问题。
我正在使用 Vapor4、Fluent 以及用于后端应用程序的 postgres 数据库。(见Package.swift
下文)
有几种不同的模型Transaction
, PlanItem
,Budget
它们对于收集财务统计数据都很有趣。在其他字段中,它们都有一个有效的日期间隔。此功能是由Statisticable
-protocol 强制执行的(见下文)
如果我现在DateInterval
根据Statisticable
every提供的值创建一个Transaction
或PlanItem
工作正常,则仅访问Budget
对象会引发以下错误:
这里唯一的区别是Budget
不直接符合Statisticable
. Budget
-objects 包裹在 -object 中,它BudgetInterval
符合Statisticable
并传递给统计信息生成器。
现在的问题是:这里出了什么问题?怎样才能弄清楚这其中的原因?
包.swift
可统计的.swift
StatisticsGenerator.swift
BudgetInterval.swift
预算.swift
Transaction.swift(用于比较)
vapor-fluent - 如何使用 Vapor 添加约束?
如何通过 Vapor 定义约束?这是我最近的尝试:
relationship - 在多对多关系中设置数据透视表中的属性
我已经通过 Vapor 4 中的数据透视表设置了多对多关系 Locale <-> Site。LocaleSite
这是有效的,我可以附加Locale
到Site
,反之亦然。在数据透视表中,我添加了一个属性.sortOrder
:
附加区域设置数组时
我想.sortOrder
在附加时在同一个循环中将 设置为某个值(也许通过附加函数?),但在文档中找不到如何。
(目前唯一的解决方法是在附加后查询我的站点或语言环境,并通过与数据透视表设置的关系.sortOrder
。非常低效......)
添加了包含一些 Calebs 答案的代码示例(见评论)
一旦 edit: 添加我收到以下错误:
调用实例方法“附加”时没有完全匹配
检查蒸气源,我看到有一个,但显然语法可能不完全正确......
我也试过:
但我得到:
在没有更多上下文的情况下,表达式的类型是模棱两可的