【发布时间】:2021-04-12 09:13:33
【问题描述】:
我有两个实体:具有 OneToMany 关系的用户和照片。一个用户可以拥有多张照片。 用户:
@Entity('users')
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
firstName: string;
@Column()
lastName: string;
@Exclude()
@Column()
password: string;
@Column({ default: '' })
avatar: string;
@OneToMany(() => Photo, photo => photo.user, { cascade: true })
photos: Photo[];
}
还有照片:
@Entity('photos')
export class Photo {
@PrimaryGeneratedColumn()
id: number;
@Column()
url: string;
@Column({default: ""})
description: string;
@ManyToOne(() => User, user => user.photos)
user: User;
}
所以,我的问题是:如何向特定用户添加新照片?我试图做这样的事情,但它没有按预期工作。
@Patch(':id/photos')
addPhoto(@Param('id') id: number, @Body() createPhotoDto: CreatePhotoDto){
return this.userService.createImage(id, createPhotoDto);
}
async createImage(id: number, createPhotoDto: CreatePhotoDto) {
const user = await this.usersRepository.findOne(id);
const newUser = await this.usersRepository.preload({
id: +id,
photos: [...user.photos, createPhotoDto]
});
return this.usersRepository.save(newUser);
}
【问题讨论】:
-
你能分享你的createPhotoDto吗?
-
@Youba 导出类 CreatePhotoDto { url: string }
标签: javascript rest controller backend nestjs