如何仅在Loopback4中的创建实体上要求属性

时间:2019-01-23 13:07:02

标签: mongodb loopbackjs

我有一个具有必需属性的模型,但仅在创建时才需要,更新时仅需要id属性。 这是我的模型示例:

@model()
export class MyModel extends Entity {
  @property({
    type: 'string',
    required: true
  })
  name: string;

  @property({
    type: 'string',
    id: true,
  })
  id: string;
}

在猫鼬模式下,我可以定义一个上下文来验证参数,但是在Loopback 4文档上,我找不到解决此问题的方法

1 个答案:

答案 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)

希望这会起作用。 如果这也不能解决问题,请写信给我。 谢谢