问题标签 [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 回答
186 浏览

vapor - 如何在 Vapor 4/FluentKit 中更新一对多关系中的孩子?

我已经梳理了这里的文档,但我不太清楚如何更新关系和模型(例如,关系发生了变化,属性发生了变化)。解码后 ModelA 中的“childrenArray”似乎为空,但是,我无法确定,因为在尝试打印值时出现此错误:

致命错误:子关系未急切加载,使用 $ 前缀访问

我的父模型:

儿童模型:

我的更新功能:

作为参考,PostmanPOST请求如下所示:

0 投票
1 回答
64 浏览

swift - 在 Vapor 命令中使用 Fluent

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

在这个查询中:

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


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


当我使 var 非可选时:

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

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

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

0 投票
1 回答
133 浏览

vapor - 在 Fluent 迁移中为新的必填字段设置默认值

我正在尝试在 Fluent 迁移中添加一个新的必填字段。就像文档中的这个例子一样:

但是当我运行时,migrate我得到一个错误,说关系“行星”的列“名称”包含空值。

有没有办法设置默认值以将必填字段添加到具有预先存在的记录的表中?

0 投票
1 回答
137 浏览

swift - 无法为查询嵌套父项创建 Fluent ORM 查询

我有 3 个表,LastName、MiddleName 和 FirstName ... FirstName 有 MiddleNameID 作为父级,MiddleName 有 LastName.id 作为父级

模型看起来像这样

我想要这样的查询,比如给我所有姓氏==史密斯和/或中间==詹姆斯的名字记录...不知道如何使用 Fluent DSL 进行多重连接?或者也许给我所有与中间名和/或姓氏匹配的名字

如果我不得不写一个 SQL 查询可能会是这样的

0 投票
1 回答
268 浏览

swift - 仅当父级存在于 Vapor 中时才使用 Fluent 创建记录

我有 3 个表,LastName、MiddleName 和 FirstName,我想在 FirstName、MiddleName 中创建新记录或更新记录,前提是 lastName 存在。如果姓氏不存在,则想返回错误。

流利的文档在通过嵌套连接创建新记录方面非常少,因为 ID 是在创建姓氏时自动生成的,我如何获取用于创建 MiddleName/FirstName 的 ID。还有任何基于关系在多个表中进行更新或创建的好例子吗?

基本上我想要流利地做类似的事情

0 投票
2 回答
124 浏览

swift - Vapor 4:如何将急切加载的父关系映射到不同的格式?

我正在为如何返回包含父关系的模型而苦苦挣扎,同时将急切加载的模型映射到不同的形式。

让我们考虑以下 2 个模型:CourseUser

我有一条这样的路线,它返回一系列课程:

生成的 JSON 如下所示:

相反,我想要的是返回教师对象,这很容易通过添加.with(\.$teacher)到查询中。Vapor 4 确实让这变得非常简单!

我的问题User是:返回整个对象,包括所有字段,甚至是我不想公开的字段。

将教师信息转换为不同版本的User模型的最简单方法是什么,例如PublicUser?这是否意味着我必须为 制作一个 DTO Course,将我的数组从 映射[Course][PublicCourse],复制所有属性,在模型更改时使它们保持同步Course等?

这似乎是很多样板,未来有很大的错误空间。很想听听是否有更好的选择。

0 投票
2 回答
180 浏览

swift - Vapor 4:如何包括兄弟姐妹,包括数据透视表中的额外属性?

我正在为如何通过包含额外字段的数据透视表返回包含多对多关系的模型而苦苦挣扎。基本上,我想返回带有额外字段的完整数据透视表,但我不知道该怎么做。

让我们考虑以下 3 个模型:CourseUser,以及它们之间的枢轴 a Student。该Student模型包含额外的字段progress

我有一条这样的路线,它返回一系列课程:

生成的 JSON 如下所示:

我如何还包括学生数组,以便最终结果是这样的?

我可以像这样将用户添加到Course模型中:

然后像这样改变我的路线:

但这只会将用户信息添加到结果中,而不是数据透视表上的额外属性(即progress)。在我看来,即使数据透视表可以具有额外的属性并且文档甚至特别指出了这一点,但实际上没有很好的方法来实际处理这种情况,因为@Siblings根本不指向数据透视表。

奖励问题:我希望将User模型映射到PublicUser模型,以便私有/内部字段不是 JSON 结果的一部分。请参阅这个问题了解我的意思。我想做同样的事情,但使用 Student 枢轴的用户模型。复杂,我知道

0 投票
1 回答
118 浏览

ios - 蒸汽 4 认证

嘿,我的登录控制器有一些问题。我的代码是:

但我真的不知道该功能在邮递员中是如何工作的。这是我的用户模型:

这是我的用户令牌:

当我输入“帐户”、“密码”和“确认密码”的值时,它一直告诉我“用户未通过身份验证”。,我的数据库中已经有了这个值。 在此处输入图像描述

而且我确定密码是正确的。有什么我错过的吗?我很新的蒸汽。我关注了下面的文章:https ://ken-60401.medium.com/vapor-4-authentication-server-side-swift-1f96b035a117

0 投票
2 回答
419 浏览

swift - 如何在 Swift / Codable 中解码日期?

我在 JSON 中有这个日期:2021-07-31T00:00:00+02:00非常标准。

我的 Postgre SQL 将日期存储为秒,例如646869600.

我应该如何设置解码器?

我试过这三个:.deferredToDate,,,.iso8601.secondsSince1970都引发了相同的错误:

预期解码 Double 但找到了一个字符串/数据。

怎么了?

0 投票
1 回答
90 浏览

swift - Vapor - 带有基本身份验证的路由总是返回 401

我是 Vapor 的新手,我已经实现了注册和登录路由。注册工作正常。每次我调用登录路由时,它似乎都有问题。每次,我尝试使用基本身份验证以注册用户身份登录,它只返回 401。在下面附上我的代码。

应用用户模型:

路线配置:

登录逻辑: