如何在Vapor中将关系子级包装到数组中?

问题描述 投票:0回答:1

我有一个亲子关系,孩子们需要包装成数组,我该怎么办?


event.testPrices = release.testPrices

final class Event: Content {
    var id: String
    var inProgress: Bool?
    var name: String
    var purpose: String?
    var testPrices: [TestPrice]

    init(id: String, name: String) {
        self.id = id
        self.name = name
    }
}

extension Release { 
    var testPrices: Children<Release, TestPrice> {
        return children(\.releaseId)
    }
}

分配给错误:

无法将类型为'Children'的值分配为类型为[[TestPrice]']

swift vapor
1个回答
0
投票

您可以使用查询来形成Future数组,然后形成map。假设您在某个控制器/路由中,其中event包含适当的Eventrelease包含适当的Release,请尝试以下操作:

{
    release, event in

    _ = release.testPrices.query(on:request).all().map { testP in
        // testP is now [TestPrice]
        event.testPrices = testP
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.