我有一个具有必需属性的模型,但仅在创建时才需要,更新时仅需要id属性。 这是我的模型示例:
@model()
export class MyModel extends Entity {
@property({
type: 'string',
required: true
})
name: string;
@property({
type: 'string',
id: true,
})
id: string;
}
在猫鼬模式下,我可以定义一个上下文来验证参数,但是在Loopback 4文档上,我找不到解决此问题的方法
答案 0 :(得分:1)
您是否尝试过从请求控制器参数的@requestBody装饰器中排除id属性
@requestBody({
content: {
'application/json': {
schema: getModelSchemaRef(Model, {exclude: ['id']}),
},
},
}
将此作为参数添加到控制器的方法中
或
您可以为请求正文创建自定义架构,例如
const RequestSchema = {
type: 'object',
required: ['name'],
properties: {
name: {
type: 'string',
},
id: {
type: 'string',
},
},
};
export const RequestBody = {
required: true,
content: {
'application/json': {schema: RequestSchema},
},
};
查看如何只需要名称,而ID不在RequestSchema对象中
然后将其作为
传递给控制器方法@requestBody(RequestSchema)
希望这会起作用。 如果这也不能解决问题,请写信给我。 谢谢