首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vapor 4父子关系

问Vapor 4父子关系
EN

Stack Overflow用户
提问于 2020-04-01 19:10:54
回答 1查看 726关注 0票数 3

在Vapor 4中,我创建了一个用户,它有这样的“齿轮”:

代码语言:javascript
复制
final class User: Model, Content {

    init() {}

    static var schema: String = "user"

    @ID(key: .id)
    var id: UUID?

    @Field(key: "name")
    var name: String?

    @Children(for: \.$user)
        var gear: [Gear]
}


final class Gear: Model, Content {

    init() {}

    static var schema: String = "gear"

    @ID(key: .id)
    var id: UUID?

    @Parent(key: "userId")
    var user: User
}

然后,当我获得这些数据时,我会这样做:

代码语言:javascript
复制
func index(req: Request) throws -> EventLoopFuture<[User]> {
    return User.query(on: req.db).with(\.$gear).all()
}

相当流畅和简单。除了ID被强制为UUID,而数据库中的表只能接受类型"text“,所以我得到了错误:

代码语言:javascript
复制
{
    "error": true,
    "reason": "server: operator does not exist: text = uuid (op_error)" 
}

那么谁有办法解决这个问题呢?

我想要的响应结构类似于:

代码语言:javascript
复制
{
    "id": "w32423tsdg3w",
    "name": "username",
    "gear": [{
        "id": "1"
        },
        {
        "id": "2"
        }
    ]
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-01 21:26:26

在这种情况下,应将ID设置为String

代码语言:javascript
复制
@ID(key: .id, generatedBy: .user) var id: String?
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60969552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档