亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不確定如何在 AdonisJs 中使用外鍵保存到數據庫

不確定如何在 AdonisJs 中使用外鍵保存到數據庫

哈士奇WWW 2021-11-25 16:41:03
概括我正在創建一個攝影應用程序來幫助攝影師跟蹤他們的客戶。這是我使用 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);

  }


查看完整回答
反對 回復 2021-11-25
  • 1 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號