Цикл 4: отправка связанных данных - PullRequest
0 голосов
/ 28 марта 2019

У меня есть форма, где я могу зарегистрировать пользователя с одним или несколькими адресами. Чтобы упростить вещи, я отправляю в петлю:

{
  "id": 0,
  "name": "User Name",
  "addresses": [
    {
      "street": "xx",
      "city": "xx",
      "country": "xx"
    },
    {
      "street": "yy",
      "city": "yy",
      "country": "yy"
    }
  ]
}

В моей модели User я определил (у меня тоже модель Address):

export class User extends Entity {
  @property({
    type: 'number',
    id: true,
    required: true,
  })
  id: number;

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

 @hasMany(() => Address, {keyTo: ‘user_id’})
  Addresses: Array<Address>;
}

Также в UserRepository я определил:

this.addresses = this.createHasManyRepositoryFactoryFor(
      'addresses',
      AddressRepositoryGetter,
    );

Когда я публикую json, loopback выдает следующую ошибку:

{
  "error": {
    "statusCode": 422,
    "name": "ValidationError",
    "message": "The `user` instance is not valid. Details: `addresses` is not defined in the model (value: undefined).",
    "details": {
      "context": "user",
      "codes": {
        "addresses": [
          "unknown-property"
        ]
      },
      "messages": {
        "addresses": [
          "is not defined in the model"
        ]
      }
    }
  }
}

Я предполагаю, что отношение "адреса" не считается свойством модели. Как я могу решить это? Я знаю, что у меня есть возможность сделать отдельный запрос на сохранение адресов, но я хочу этого избежать.

1 Ответ

1 голос
/ 29 марта 2019

Эта ошибка на самом деле генерируется источником данных, который является базовой библиотекой коннектора для соединения с базой данных.Кажется, столбец адресов не определен в вашей базе данных в таблице User.Пожалуйста, проверьте это.

...