我有一个像这样的环回模型:
{
"name": "MyModel",
"plural": "MyModels",
"base": "User",
"idInjection": false,
"options": {
"validateUpsert": false
},
...
}
当使用CREATE
或POST
时,它运行良好,运行所有验证等,这当然是应该的。但是,如果我使用 PATCH/MyModels/{id}
,仅传递 JSON 数据中的一个属性(因为我只想更新该特定属性值),我希望它不会对我未传递的属性运行验证。
因为它在这里说:
https://loopback.io/doc/en/lb3/Model-definition-JSON-file.html#advanced-options
如果您将 validateUpsert
设置为 false,upsert
将不会运行验证。
这里说:
https://loopback.io/doc/en/lb3/Controlling-data-access.html#comprehensive-accesstype-property-and-end-point
PATCH/MyModels/{id}
对应于 updateAttributes
,PATCH/MyModels
对应于 upsert
。
所以我希望它不会对我未在 PATCH
方法中传递的属性运行验证。但仍然如此。它甚至仍然进行存在
验证。
如何使用 PATCH
使 loopback
简单地忽略(不验证和不更新)我未传递的属性?
我目前正在使用loopback ^3.0.0
。
谢谢! :)
最佳答案
您可以使用 put 方法并仅传递要更新的字段:
例如/MyModels/{id}
这里 id 是行的唯一标识符,并像这样传递正文:
{ "name": "新名称" }
在这种情况下,仅会验证和更新名称值。其他字段保持不变。
关于javascript - Loopback validateUpsert 设置为 false 不起作用,仍然运行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52889919/