sql - 环回3中的标签关系
问题描述
在 Loopback 中如何创建标签?例如有项目
{
id,
name
}
并且有类似模型的标签集合现在项目需要有多个标签,并且可以在多个项目中使用同一个标签。
例如,在创建项目时,用户可能会键入已经存在的标签或新标签,这些标签应添加到项目中。
我在环回框架中找不到我需要的确切关系。你是怎样做的?
解决方案
TLDR
CREATE TABLE ProjectTag (id AUTO INCREMENT PRIMARY KEY, project_id INTEGER, tag_id INTEGER)
;$ lb relation
Project
has and belongs to many
Tag
POST localhost:3000/api/Project
POST http://localhost:3000/api/Projects/{ProjectId}/Tags
第一步创建链接Projects
到的表Tags
。
第二个在环回中创建关系并修改您的Project.json
relations
第三个创建一个新项目
第四个为该项目创建一个新标签。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
一个表,必须存在一个映射到另一个的表。 如果您将关系添加到 Project 模型,它将被调用ProjectTag
(我将定义它具有环回模型,因为我不知道您的 RDBMS)。
{
"name": "ProjectTag",
"properties": {
"projectId": {
"type": "Number"
},
"tagId": {
"type": "Number"
},
"id": {
"type": "Number"
}
}
}
您可以创建与 的关系lb relation
。这会将其放入您的模型之一。(我的模型是stackoverflow1)
"stackoverflow2s": {
"type": "hasAndBelongsToMany",
"model": "stackoverflow_2",
"foreignKey": "",
"options": {
"nestRemoting": true
}
}
例如,在创建项目时,用户可能会键入已经存在的标签或新标签,这些标签应添加到项目中。
您必须先创建项目POST localhost:3000/api/Project
然后您可以使用POST http://localhost:3000/api/Projects/{ProjectId}/Tags
将标签添加到该特定对象。
推荐阅读
- .net - “延迟”不是任务 .NET 的成员
- python - 我在加载 SpaCy 模型时遇到错误
- html - 在控制器中使用追加数据调用
- php - 在 php 中编写自动回复脚本时,如何更改来自电子邮件的部分?
- sql - CONCAT 从日期开始的年份和月份并添加自定义日期
- bluez - 如何找出BLE设备已取消配对并重新连接
- post - Laravel 5 干预使来自 POST API 的 base64 blob 无法从给定的二进制数据初始化
- python - 从 str 中切片 str 并添加到列表 [Python]
- javascript - 如何使用 ngFor 一次只显示一个 ul
- codeigniter - 我对这个错误消息在我的代码点火器网站上所说的内容感到困惑