概括我正在创建一个摄影应用程序来帮助摄影师跟踪他们的客户。这是我使用 Adonis.JS 的第一个项目,到目前为止我真的很喜欢它,但被这个问题困住了一段时间,无法在任何地方找到答案。我将分享我的模型、控制器和迁移(可能没有正确创建关系,自从我完成任何后端工作以来已经有一段时间了)工作流:一个用户有很多客户端,一个客户端有很多服务需要能够从用户那里得到服务。我试过的在我的 ServiceController 中保存时,我尝试了以下操作:const user = await auth.getUser();service.fill({ name, price, quantity, due_date});await user.clients().services().save(service);return service;但遗憾的是,我收到了 500 条错误消息:“user.clients(...).services is not a function”这确实有道理,只是不知道还能怎么做。我工作的一种方式是:const clients = await Database.table('clients').select('*').where('user_id', user.id);await Database.table('services') .insert({ name, price, quantity, due_date: dueDate, client_id: clients[0].id }); return service;我只是觉得那个解决方案不正确,考虑到阿多尼斯给了 Lucid,这感觉有点不合时宜,我不确定;但我觉得该查询会在某些时候引起问题。
1 回答
慕少森
TA贡献2019条经验 获得超9个赞
我最终决定我应该只通过主体传递 clientId。
服务控制器:
async store ({ auth, request, response }) {
// Get Authenticated user
const user = await auth.getUser();
// Retrieve new service from payload
const { name, price, quantity, dueDate, clientId } = request.all();
const service = await Service.create({
name,
price,
quantity,
due_date: dueDate,
client_id: clientId
});
return response.status(200).send(service);
}
添加回答
举报
0/150
提交
取消