私のプロジェクトには、2 つのエンティティがあります。Profile
とProject
。
エンティティProject
には、の配列であるフィールド「コラボレーター」がありProfile
ます。->コード
Entityには「nickname」と「id」のProfile
2 つのフィールドがあり、GET Profile API を呼び出すとよく表示されます。@Expose
->コード-> dev.collact.io/api/profiles/8
の結果を参照してください。
{
"createdDt": "2021-10-05T14:51:29.312Z",
"updatedDt": "2021-10-05T14:51:29.312Z",
"deletedDt": null,
"photo": "https://collact-dev.s3.ap-northeast-2.amazonaws.com/profiles/oj2UBVFXCTnZ9z9mmy8UtU-59FD9F11-1812-4758-85B7-4347A4CE0FEF.png",
"contact": null,
"intro": null,
"detail": null,
"email": null,
"phone": null,
"projects": [],
"nickname": "Tester",
"id": 8
}
ただし、GET Project API を呼び出すと、公開されたフィールド「nickname」と「id」が「collaborators」内に表示されません。-> dev.collact.io/api/projects/72の結果を参照してください。
{
"createdDt": "2021-12-20T18:14:22.277Z",
"updatedDt": "2021-12-20T18:14:22.277Z",
"deletedDt": null,
"id": 72,
"photos": [
{
"createdDt": "2021-12-20T18:14:22.321Z",
"updatedDt": "2021-12-20T18:14:22.321Z",
"deletedDt": null,
"id": 26,
"photo": "https://collact-dev.s3.ap-northeast-2.amazonaws.com/projects/cWk3fQEoperPxAS6T1QV5K.png"
}
],
"collaborators": [
{
"createdDt": "2021-10-03T14:53:20.165Z",
"updatedDt": "2021-12-09T13:26:11.870Z",
"deletedDt": null,
"photo": "https://collact-dev.s3.ap-northeast-2.amazonaws.com/profiles/oj2UBVFXCTnZ9z9mmy8UtU-59FD9F11-1812-4758-85B7-4347A4CE0FEF.png",
"contact": "ㅆZz",
"intro": "Zz",
"detail": "Asdfasdf",
"email": null,
"phone": null
}
],
"areas": [
{
"createdDt": "2021-07-12T13:28:12.063Z",
"updatedDt": "2021-07-12T13:28:12.063Z",
"deletedDt": null,
"id": 1,
"area": "drawing"
},
{
"createdDt": "2021-07-12T13:28:12.063Z",
"updatedDt": "2021-07-12T13:28:12.063Z",
"deletedDt": null,
"id": 2,
"area": "design"
}
],
"title": "title",
"detail": ""
}
すでに 2 つのソリューションを試しましたが、思い通りに動作しません。
まず、エンティティの「コラボレーター」に @Type(() => Profile) を追加しようとしましProject
たが、違いはありませんでした。
第二に、参加は までしか機能しないと思っていたcollaborators
ので、以下のようになるまで参加する必要がありましたcollaborators.user
。
findOne(id: string): Promise<Project> {
return this.projectsRepository.findOne(id, {
relations: ['collaborators', 'collaborators.user', 'areas', 'photos'],
});
}
ただ、今回は「ニックネーム」と「id」がコラボ相手に出てこない。むしろ、ネストされたユーザー オブジェクト全体が表示されます。
{
"createdDt": "2021-10-03T11:49:51.052Z",
"updatedDt": "2021-10-03T11:49:51.052Z",
"deletedDt": null,
"id": 4,
"title": "title2",
"detail": "",
"collaborators": [
{
"createdDt": "2021-10-03T11:46:20.347Z",
"updatedDt": "2021-10-03T11:46:20.347Z",
"deletedDt": null,
"photo": null,
"contact": null,
"intro": null,
"detail": null,
"email": null,
"phone": null,
"user": {
"createdDt": "2021-10-03T11:46:20.347Z",
"updatedDt": "2021-10-03T11:46:20.347Z",
"deletedDt": null,
"id": 1,
"nickname": "string1",
"isSuperuser": false,
"isStaff": false,
"isActive": true,
"loginPlatform": "manual",
"uid": "string",
"token": "string",
"lastLoginDt": "2021-10-03T11:46:20.347Z"
}
}
],
"areas": [
{
"createdDt": "2021-10-03T11:44:05.962Z",
"updatedDt": "2021-10-03T11:44:05.962Z",
"deletedDt": null,
"id": 1,
"area": "drawing"
},
{
"createdDt": "2021-10-03T11:44:05.962Z",
"updatedDt": "2021-10-03T11:44:05.962Z",
"deletedDt": null,
"id": 2,
"area": "design"
}
],
"photos": []
}
誰でも助けることができますか?