strongloop 环回:如何保存多对多关系
strongloop loopback: how to save many-to-many relationship
我定义了以下关系:
{
"name": "playlist",
"base": "PersistedModel",
"relations": {
"songs": {
"type": "hasAndBelongsToMany",
"model": "song",
"foreignKey": ""
}
}
}
所以一个Song hasAndBelongsToMany Playlist
。到目前为止一切顺利。
但是在将歌曲添加到播放列表时,我很困惑。
理想情况下,我希望能够在播放列表 create
端点的同一调用中添加新歌曲。我不知道该怎么做,恕我直言,文档很差。
看来我必须在 /playlists/:id/songs
上执行 POST
才能将歌曲关联到播放列表?但是,我不想创作新歌,只是将现有歌曲添加到播放列表中。这样行吗? POST
在提到的 URL 不会添加(并想要创建)新歌曲吗?
顺便说一句,使用 postgresql
作为后端。
正确的做法是什么?
当您创建 hasAndBelongsToMany
关系时,Loopback 会公开添加和删除 JS 方法,因为 documented. However I can't find any documentation on how it is exposed in the API, but this pull request 解释了如何执行,如下所示:
- 将歌曲添加到播放列表:
PUT /api/playlist/:id/song/rel/:fk
- 从播放列表中删除歌曲:
DELETE /api/playlist/:id/song/rel/:fk
请注意,这假设您有一个 PlaylistSong
link table 和环回模型,具有 PlaylistId 和 SongId 字段以及所有正确的关系设置。
我定义了以下关系:
{
"name": "playlist",
"base": "PersistedModel",
"relations": {
"songs": {
"type": "hasAndBelongsToMany",
"model": "song",
"foreignKey": ""
}
}
}
所以一个Song hasAndBelongsToMany Playlist
。到目前为止一切顺利。
但是在将歌曲添加到播放列表时,我很困惑。
理想情况下,我希望能够在播放列表 create
端点的同一调用中添加新歌曲。我不知道该怎么做,恕我直言,文档很差。
看来我必须在 /playlists/:id/songs
上执行 POST
才能将歌曲关联到播放列表?但是,我不想创作新歌,只是将现有歌曲添加到播放列表中。这样行吗? POST
在提到的 URL 不会添加(并想要创建)新歌曲吗?
顺便说一句,使用 postgresql
作为后端。
正确的做法是什么?
当您创建 hasAndBelongsToMany
关系时,Loopback 会公开添加和删除 JS 方法,因为 documented. However I can't find any documentation on how it is exposed in the API, but this pull request 解释了如何执行,如下所示:
- 将歌曲添加到播放列表:
PUT /api/playlist/:id/song/rel/:fk
- 从播放列表中删除歌曲:
DELETE /api/playlist/:id/song/rel/:fk
请注意,这假设您有一个 PlaylistSong
link table 和环回模型,具有 PlaylistId 和 SongId 字段以及所有正确的关系设置。