按类型获取 Objection.js 中的帖子?

Fetch posts by types in Objection.js?

所以我有一个 posts table 和一个类型 table。每个 post 可以有多种类型。我在 post 模型中创建了一个 HasManyRelation 关系。不,我希望获得所有 post 的 type_id 可能是 1 或 2 的东西。这是我试过的,

const posts = await UserPost.query()
            .select("id", "description", "price", "created_at")
            .eager("[user, category, images, types]")
             .modifyEager("types", builder => {
                 builder.where("user_post_type.type_id", 1)
             })
            .limit(limit)
            .orderBy("created_at", "desc");

这行不通。这只是过滤类型本身。但实际上 return post 不属于那种类型。我该怎么做?

eager 在查询之前进行获取 Post 并在查询之后为您在 .eager() 的参数中写入每个 eager。 如果你想按类型过滤 Post,你必须连接表,并使用 .where() 添加条件。这是第一个想到的例子:

const posts = await UserPost.query()
            .select("id", "description", "price", "created_at")
            .leftJoin('types')
            .eager("[user, category, images]")
            .where('types.type_id', 1) // Condition
            .limit(limit)
            .orderBy("created_at", "desc");

如果您想查看其他示例,这是 link for documentation