问题标签 [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.

0 投票
1 回答
71 浏览

swift - Fluent中如何确保所有数据库操作在数据库关闭之前完成?

Fluent 操作以异步方式工作,并在操作完成时返回 EventLoopF​​uture。那么,如果代码使用数据库shutdown调用,有没有办法确保在数据库关闭之前完成所有启动的数据库操作?

例如,下面的代码编译良好,但不能确保在数据库中插入建筑对象(Building是一个 Fluent Model。)。另一方面,如果我将wait函数与函数一起使用create,则操作会同步,但会确保在数据库中创建建筑记录。

有没有办法dbs.shutdown()等到create操作(或任何启动的数据库操作)完成?

0 投票
1 回答
563 浏览

swift - Vapor 4:子关系未急切加载,使用 $ 前缀访问

目前我正在做一个学校作业,我们必须使用 Vapor 构建一个 API。我有一些基本的 API 调用正在工作,我现在正在尝试一些更高级的 API 调用,但我无法让它工作。

当使用正文调用addToPartyURL 时,我有这个函数被调用/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

我有一个类似的功能来更新已经工作的用户的用户名,这几乎是一样的。

任何帮助将非常感激。先感谢您。

0 投票
1 回答
293 浏览

mysql - Vapor 4 Fluent 创建模型不会将其保存到数据库中

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

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

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

预先感谢您的帮助!

卡里姆

0 投票
2 回答
127 浏览

swift - 创建实例集 id,虽然它应该是 nil

我正在做一个流利的小型蒸汽项目。现在我应该能够创建一个用户,为所述创建的用户创建一个令牌并返回带有会话令牌的用户。之后我应该能够登录并创建一个新令牌。

现在的问题是,每当我创建一个令牌时,id所述令牌的值设置为1,即使我将它设置为nil。创建用户时不会发生这种情况,然后自动增量按预期工作。

我使用的数据库是 MySQL。

我的迁移CreateTokens.swift

我的令牌 ( Token.swift):

在我的用户结构中,当我创建一个令牌时:

如果我在并打印出令牌上设置断点return token,我会得到以下信息:

ID 值设置为1,但是在代码中(对我而言)很清楚我已将其设置为nil. 即使我token.id = nil在返回之前添加,它仍然设置为1.

我在这里做错了什么?还是我偶然发现了一个流利的错误?

0 投票
1 回答
375 浏览

enums - 枚举给出蒸汽 4 和流利的错误

这让我很困惑:

我有一个模型,我想在其中使用枚举。我首先声明枚举:

然后它在我的班级领域:

然后我使用迁移在数据库中创建它:

到目前为止,一切都很好。此迁移有效,并且数据库看起来没问题。但是当我想在另一个迁移中添加一些数据来为数据库做种时,我得到一个错误:


不幸的是,这个错误并不能真正帮助查明问题的根源

0 投票
1 回答
71 浏览

fluent - 返回子值和兄弟值作为响应

这可能是一个微不足道的问题,但我无法解决它,也没有找到答案。
我有 3 个相互关联的表作为父子和兄弟姐妹。我想从所有表和相同的 JSON 响应中返回一些值。

我想返回那个模型:

所以我现在使用的查询看起来像这样

它显然不起作用,因为它返回[ClimbingGym]而不是[ClimbingGymResponse].

那么我怎样才能将一个转换为另一个呢?
我在每个健身房的填充disciplines: [ClimbingDisciplineType]socialNetworks: [String]场地方面都有问题

谢谢!

0 投票
1 回答
167 浏览

postgresql - 如何存储带有小数字段的 Vapor Fluent 模型

我有一个需要 type的Fluent(支持的)模型,但我只能存储/ 。PostgresDecimal.float.double

上述带有迁移的模型将失败。如果这不容易实现(就像.stringor一样容易.double),有没有办法获得类似于 type Decimalin的行为Fluent

0 投票
1 回答
69 浏览

swift - 访问数据库对象突然抛出 EXC_BAD_INSTRUCTION

我有一个我自己无法解决的问题。

我正在使用 Vapor4、Fluent 以及用于后端应用程序的 postgres 数据库。(见Package.swift下文)

有几种不同的模型Transaction, PlanItemBudget它们对于收集财务统计数据都很有趣。在其他字段中,它们都有一个有效的日期间隔。此功能是由Statisticable-protocol 强制执行的(见下文)

如果我现在DateInterval根据Statisticableevery提供的值创建一个TransactionPlanItem工作正常,则仅访问Budget对象会引发以下错误:

NIO-ELT-0-#8 (10):EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)

这里唯一的区别是Budget不直接符合Statisticable. Budget-objects 包裹在 -object 中,它BudgetInterval符合Statisticable并传递给统计信息生成器。

现在的问题是:这里出了什么问题?怎样才能弄清楚这其中的原因?

包.swift

可统计的.swift

StatisticsGenerator.swift

BudgetInterval.swift

预算.swift

Transaction.swift(用于比较)

0 投票
1 回答
34 浏览

vapor-fluent - 如何使用 Vapor 添加约束?

如何通过 Vapor 定义约束?这是我最近的尝试:

0 投票
1 回答
70 浏览

relationship - 在多对多关系中设置数据透视表中的属性

我已经通过 Vapor 4 中的数据透视表设置了多对多关系 Locale <-> Site。LocaleSite这是有效的,我可以附加LocaleSite,反之亦然。在数据透视表中,我添加了一个属性.sortOrder

附加区域设置数组时

我想.sortOrder在附加时在同一个循环中将 设置为某个值(也许通过附加函数?),但在文档中找不到如何。

(目前唯一的解决方法是在附加后查询我的站点或语言环境,并通过与数据透视表设置的关系.sortOrder。非常低效......)

添加了包含一些 Calebs 答案的代码示例(见评论)

一旦 edit: 添加我收到以下错误:

调用实例方法“附加”时没有完全匹配

检查蒸气源,我看到有一个,但显然语法可能不完全正确......

我也试过:

但我得到:

在没有更多上下文的情况下,表达式的类型是模棱两可的