loopback 3中的标签关系

Tags relationship in loopback 3

在 Loopback 中如何创建标签? 例如有项目

{
  id,
  name
}

还有类似型号的标签合集 现在项目需要有多个标签,同一个标签可以在多个项目中使用

例如,在创建项目时,用户可能会键入已经存在的标签或新标签,这些标签应该添加到项目中。

我在环回框架中找不到我需要的确切关系。你是怎么做到的?

TLDR

  1. CREATE TABLE ProjectTag (id AUTO INCREMENT PRIMARY KEY, project_id INTEGER, tag_id INTEGER);

  2. $ lb relation Project has and belongs to many Tag

  3. POST localhost:3000/api/Project

  4. POST http://localhost:3000/api/Projects/{ProjectId}/Tags

第一步创建 table,它将 Projects 链接到 Tags

第二个在环回中创建关系并修改您的 Project.json relations

第三个新建Project

第四个为该项目创建一个新标签。 REST 资源管理器中有更多选项。

编辑

要添加项目中已存在的标签,请使用 PUT /Projects/{PROJECT_ID}/Tags/rel/{TAG_ID}

详情

https://loopback.io/doc/en/lb3/HasAndBelongsToMany-relations.html https://loopback.io/doc/en/lb3/HasManyThrough-relations.html

hasAndBelongsToMany 本质上与 hasManyThrough 相同,除了直通模型是隐式创建的。

要实现 HasManyAndBelongsToMany 必须存在一个 table,它 将一个映射到另一个。 如果将关系添加到项目模型,它将被称为 ProjectTag(我将定义它有一个环回模型,因为我不知道你的 RDBMS)。

{
  "name": "ProjectTag",
  "properties": {
    "projectId": {
      "type": "Number"
    },
    "tagId": {
      "type": "Number"
    },
    "id": {
      "type": "Number"
    }
  }
}

您可以创建与 lb relation 的关系。这会将其放入您的模型之一。 (我的模型是 Whosebug1)

"Whosebug2s": {
  "type": "hasAndBelongsToMany",
  "model": "Whosebug_2",
  "foreignKey": "",
  "options": {
    "nestRemoting": true
  }
}

For example while creating a project, the user may type already existing tags, or new tags, and those should be added to the project.

您必须先创建项目POST localhost:3000/api/Project

然后您可以使用 POST http://localhost:3000/api/Projects/{ProjectId}/Tags 为该特定对象添加标签。