從此紀錄的其中一個集合(例如「comments」評論)中移除一個外部紀錄(例如評論)。
DELETE /:model/:id/:association/:fk
此動作會從此紀錄(「主要」或「父」紀錄)的集合中移除對其他紀錄(「外部」或「子」紀錄)的參照。請注意,這實際上並不會銷毀外部紀錄,僅會取消連結。
res.notFound()
回應。res.notFound()
回應。via
),則以外部紀錄上的 via
指向的 foreign key 或集合也將會被更新。參數 | 類型 | 詳細資訊 |
---|---|---|
model | 父紀錄所屬模型的 識別名稱 (identity)。 例如: 'store' (在 /store/16/employeesOfTheMonth/7 中) |
|
id | 期望的父紀錄的主鍵值。 例如: '16' (在 /store/16/employeesOfTheMonth/7 中) |
|
association | 集合屬性的名稱。 例如: 'employeesOfTheMonth' |
|
fk | 要從集合中移除的子紀錄的主鍵值(通常是 id)。 例如: '7' |
假設您正在為一個小型連鎖雜貨店建立應用程式。每間店都有一台巨大的電視螢幕,顯示該店目前「本月最佳員工」,以便顧客和團隊成員在走進門時可以看到。為了確保資訊是最新的,您建立了一個排程工作(例如,使用 cron),該工作在每個月的第一天執行,以變更系統中每間店的「本月最佳員工」。
假設,作為此排程工作的一部分,我們發送一個請求,從 16 號商店的 employeesOfTheMonth
中移除 Dolly(員工編號 7)。
DELETE /store/16/employeesOfTheMonth/7
{
"id": 16,
"name": "Parmer and N. Lamar",
"createdAt": 1485552033435,
"updatedAt": 1485552048794,
"employeesOfTheMonth": [
{
"id": 12,
"name": "Motoki",
"createdAt": 1485462079725,
"updatedAt": 1485476060873
},
{
"id": 4,
"name": "Timothy",
"createdAt": 1485462079727,
"updatedAt": 1485476090874
}
]
}
如果您為您的應用程式啟用了 WebSockets,那麼每個訂閱父紀錄的客戶端都將收到有關已移除子紀錄的通知,其中通知事件名稱是父模型識別名稱(例如 store
),並且「message」具有以下格式:
id: <the parent record's primary key value>,
verb: 'removedFrom',
attribute: <the parent record collection attribute name>,
removedIds: <the now-removed child records' primary key values>
例如,繼續上面的範例,所有訂閱員工編號 7 的客戶端(除了發出請求的客戶端)都將收到以下訊息:
{
id: 16,
verb: 'removedFrom',
attribute: 'employeesOfTheMonth',
removedIds: [ 7 ]
}
訂閱子紀錄的客戶端會收到額外的通知
假設 employeesOfTheMonth
是使用 via
定義的,那麼 updated
或 removedFrom
通知也將發送給任何訂閱 Dolly(我們移除的子紀錄)的客戶端。
如果另一側的
via
連結屬性也是複數(例如employeeOfTheMonthAtStores
),則將發送另一個removedFrom
通知。否則,如果via
指向單數屬性(例如employeeOfTheMonthAtStore
),則將發送updated
通知。